【发布时间】:2013-06-29 20:19:29
【问题描述】:
我正在尝试使用最初在 MATLAB 中的 numpy 重写一个函数。 MATLAB中有一个逻辑索引部分如下:
X = reshape(1:16, 4, 4).';
idx = [true, false, false, true];
X(idx, idx)
ans =
1 4
13 16
当我尝试在 numpy 中创建它时,我无法获得正确的索引:
X = np.arange(1, 17).reshape(4, 4)
idx = [True, False, False, True]
X[idx, idx]
# Output: array([6, 1, 1, 6])
通过逻辑索引从矩阵中获取网格的正确方法是什么?
【问题讨论】:
-
我注意到我可以通过
X[idx,:][:,idx]做到这一点,但这不是很奇怪吗?
标签: python matlab numpy matrix-indexing