我在python中使用set操作来执行两个numpy数组之间的对称差异。然而,结果是一个集合,我需要将其转换回numpy数组以向前移动。有没有办法做到这一点?下面是我的尝试:如何将python集转换为numpy数组?
a = numpy.array([1,2,3,4,5,6])
b = numpy.array([2,3,5])
c = set(a)^set(b)
结果是一组:
In [27]: c
Out[27]: set([1, 4, 6])
如果我转换为numpy的阵列,它把整组中第一个数组元素。
In [28]: numpy.array(c)
Out[28]: array(set([1, 4, 6]), dtype=object)
我需要什么,但是,这是这样的:
array([1,4,6],dtype=int)
我可以遍历所有的元素逐一进行转换,但我一定要有100000元,并希望有一个内置功能保存循环。谢谢!
当比较次数很大时,是否使用了numpy set例程,比如'setxor1d',坏了?也许是一个新问题,但我认为这个答案非常相关。在我的情况下,我将拥有10万个+集合操作的100k个对象。 – Annan