【发布时间】:2013-08-31 09:56:53
【问题描述】:
我有两个数组,比如说:
a, b = np.array([13., 14., 15., 32., 33.]), np.array([15., 16., 17., 33., 34., 47.])
我需要找到 a 中不存在于 b 中的所有元素的索引。 在上面的示例中,结果将是:
[0, 1, 3]
因为a[0]、a[1]和a[3]是13.、14.和32.,在b中不存在。请注意,我不想知道 13.、14. 和 32. 的实际值。(在这种情况下,我可以使用 set(a).difference(set(b)))。我真的只对指数感兴趣。
如果可能,答案应该是“矢量化”,即不使用 for 循环。
【问题讨论】:
-
在这个例子中只是巧合,它们都是排序数组吗? (如果它们在您的问题的真实版本中排序,您可以滥用该属性)
-
对不起,我使用排序数组来帮助阅读。但我仍然很想听听您将如何处理排序数组 :)
-
好吧,自定义算法可能会通过滥用它们已排序的事实来获得更好的复杂性,(不确定最终会得到什么复杂性,但我假设比你做的更好,如果你没有那个属性)
标签: python arrays numpy indexing set