python - 有选择地访问 numpy 3D 矩阵的行
问题描述
有没有办法索引一个 3D numpy 矩阵来选择性地抓取每个第 i 层的第 i 行?
例如,我有一个 RxNxR 矩阵,我想抓取第 1 层的第 1 行、第 2 层的第 2 行、第 3 层的第 3 行等,最后得到一个 RxN 矩阵。
我可以在一次操作中做到这一点吗?
解决方案
使用numpy.diagonal函数:
a = np.arange(27).reshape(3, 3, 3)
np.diagonal(a, offset=0, axis1=0, axis2=1).T
给
array([[ 0, 1, 2],
[12, 13, 14],
[24, 25, 26]])
推荐阅读
- unit-testing - 对自定义 CLion 插件进行单元测试
- javascript - 蓝色窗口在 3 秒后消失
- java - 通过更改列表类型进行 Android LiveData 转换
- java - Java 到 Kotlin 以不同的方法访问类特定的变量
- laravel - 方法链接不存在 - laravel 5.4
- r - R - 在数据框中添加计数表
- unity3d - 传感器融合对于实现手机游戏是否必不可少?
- django - 无法将 django 应用程序推送到 Heroku
- twitter - 如何使用 Twitter API 从某个国家/地区获取所有推文?
- c - 结构数组的最后一个元素 - C