我在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