如果您有一个布尔数组,则可以像这样直接选择:
>>> a = np.array([True, True, True, False, False])>>> b = np.array([1,2,3,4,5])>>> b[a]array([1, 2, 3])
与最初的示例一起使用,您可以执行以下操作:
>>> a = np.array([[1,2,3], [4,5,6], [7,8,9]])>>> b = np.array([[False,True,False],[True,False,False],[False,False,True]])>>> a[b]array([2, 4, 9])
您还可以添加一个
arange并对其进行直接选择,尽管取决于生成布尔数组的方式以及代码看起来像YMMV。
>>> a = np.array([[1,2,3], [4,5,6], [7,8,9]])>>> a[np.arange(len(a)), [1,0,2]]array([2, 4, 9])
希望能有所帮助,如果您还有其他问题,请告诉我。



