【发布时间】:2015-08-17 21:55:42
【问题描述】:
我有一个这样的元组列表:
listOfTuples = [(0, 1), (0, 2), (3, 1)]
还有一个看起来像这样的数组:
myArray = np.array([-2, 9, 5])
此外,我有一个带有布尔表达式的数组,我这样创建:
dummyArray = np.array([0, 1, 0.6])
myBooleanArray = dummyArray < 1
myBooleanArray 因此看起来像这样:
array([True, False, True], dtype=bool)
现在我想根据myBooleanArray 从listOfTuples 和myArray 中提取值。对于myArray,这是直截了当的,我可以使用:
myArray[myBooleanArray]
这给了我想要的输出
[-2 5]
但是,当我使用
listOfTuples[myBooleanArray]
我收到
TypeError:只有一个元素的整数数组可以转换为 索引
解决方法是先将此列表转换为数组:
np.array(listOfTuples)[myBooleanArray]
产生
[[0 1]
[3 1]]
有没有更聪明的方法呢?我想要的输出是
[(0, 1), (3, 1)]
【问题讨论】:
标签: python arrays list boolean