Python 使用布尔向量索引numpy数组

Python 使用布尔向量索引numpy数组,python,numpy,Python,Numpy,我有一个numpy.ndarray和一个布尔列表。我想使用列表访问数组中的列 X = [[1,2,3,4],[5,6,7,8]] Y = [True,False,False,True] 我希望结果是 [[1,4][5,8]] 我想我这样做效率很低,我想知道是否有一个简单的方法 您必须先将其转换为numpy import numpy as np X = np.array([[1,2,3,4],[5,6,7,8]]) Y = np.array([True,False,False,True])

我有一个numpy.ndarray和一个布尔列表。我想使用列表访问数组中的列

X = [[1,2,3,4],[5,6,7,8]]
Y = [True,False,False,True]
我希望结果是

[[1,4][5,8]]

我想我这样做效率很低,我想知道是否有一个简单的方法

您必须先将其转换为numpy

import numpy as np

X = np.array([[1,2,3,4],[5,6,7,8]])
Y = np.array([True,False,False,True])

print(X[:,Y])

..... <代码>X[:,Y]?
X[:,[0,3]]
?不工作。它说数组的索引太多了。@Nivi,Divakar的答案应该有效,除非您的示例输入不能反映实际数据的特征。我建议您重新考虑您的问题。您是否将数组转换为numpy?我进行了复制/粘贴,它可以按照您的意愿工作。是的。我的y=array([True,False,True,False],dtype=bool)将进行检查。谢谢。@它应该是np.array,而不仅仅是array。你能把你的实际代码写在问题里吗?如果它仍然不起作用。