python - numpy 填充 3D 数组的对角线 0
问题描述
假设我有一个 3D 数组,如何将前两个维度的 diag 填充为零。例如
a = np.random.rand(2,2,3)
for i in range(3):
np.fill_diagonal(a[:,:,i], 0)
有没有办法替换for循环?
解决方案
以下是解决方案之一
a = np.random.rand(2,2,3)
np.einsum('iij->ij',a)[...] = 0
推荐阅读
- python - 在 Django 模型类上使用继承的类方法
- rust - Rust:创建一个整数向量
- linux - 一个衬垫将文件夹(无文件)从一个位置复制到另一个位置
- reactjs - React - 我们是否应该在更新状态之前检查组件是否已安装?
- reactjs - 如何将 BrowserRouter 从 react-router-dom 更改为 Router 以使用自定义历史对象?
- artifactory - Docker 中的 Artifactory 在启动期间产生错误
- html - 我怎样才能将链接添加到这些框
- html - 在页面上垂直居中 flex 容器
- typescript - 如何期望 3 个对象与 expect.objectContaining({...?
- php - 通过转发器字段的 acf 关系子字段过滤 wordpress 自定义帖子类型