A
给定一个形状的 numpy 矩阵(m,n)
和一个ind
长度为的布尔值列表n
,我想提取A
布尔列表中对应元素为真的列。
我第一次天真的尝试
Asub = A[:,cols]
给出了相当奇怪的结果,没有必要在这里引用......
按照 pv. 对这个问题的回答,我尝试numpy.ix_
如下:
>>> A = numpy.diag([1,2,3])
>>> ind = [True, True, False]
>>> A[:,numpy.ix_(ind)]
array([[[1, 0]],
[[0, 2]],
[[0, 0]]])
>>> A[:,numpy.ix_(ind)].shape
(3, 1, 2)
现在结果的形状不合适:我想要一个(3,2)
结果数组。我想我可以将结果分解为二维,但肯定有更好的方法来做到这一点?