我正在尝试使用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]
来实现,但这不奇怪吗? - petrichor