我有一个关于蟒蛇魔法的问题。 我必须使用相同大小的数组。一个填充点,另一个是布尔数组(true | false)。现在我想删除第一个数组中所有点,其中元素在另一个数组中为假。
所以如果我的第一个数组是[(1,2),(2,3),(3,4),(4,5)],另一个数组是[true,false,false,true]结果数组应为[(1,2),(4,5)]。
问题是,数组很大,迭代方法很慢。
有人知道执行此任务pythonesque的一些神奇魔法吗?
答案 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])