当其他数组为false Python时,从一个数组中删除元素

时间:2018-01-15 13:57:52

标签: python arrays numpy

我有一个关于蟒蛇魔法的问题。 我必须使用相同大小的数组。一个填充点,另一个是布尔数组(true | false)。现在我想删除第一个数组中所有点,其中元素在另一个数组中为假。

所以如果我的第一个数组是[(1,2),(2,3),(3,4),(4,5)],另一个数组是[true,false,false,true]结果数组应为[(1,2),(4,5)]。

问题是,数组很大,迭代方法很慢。

有人知道执行此任务pythonesque的一些神奇魔法吗?

2 个答案:

答案 0 :(得分:2)

它与numpy

直截了当
# convert your arrays to ndarrays
a = np.array([(1, 2), (2, 3), (3, 4), (4, 5)])
mask = np.array([True, False, False, True])

print a[mask].tolist()
# [[1, 2], [4, 5]]

答案 1 :(得分:0)

只需要你想要的东西,不要删除它:,没有任何外部lib的一线解决方案

print([first_1[i] for i,j in enumerate(second_1) if j==True])