2011-12-31 131 views
2

排除元素我想要得到C數組的結果,但我不知道如何:從numpy的陣列

import numpy as np 
a = xrange(10) 
b = np.array([3,2,1,9]) 

使c爲不在B的元素:

c = np.array([0,4,5,6,7,8]) 
+0

什麼是'np.xrange'?你的意思是'np.arange'? – eumiro 2011-12-31 13:05:35

回答

2
import numpy as np 
a = np.arange(10) 
b = np.array([3,2,1,9]) 

np.array(sorted(set(a) - set(b))) 
# array([0, 4, 5, 6, 7, 8]) 

UPDATE:與a = xrange(10)一起工作。

+1

這對於大型數組來說效率不高。 JoshAdel的答案是更好的方法。 – jterrace 2011-12-31 17:58:48

+0

我只想說,玩過定時,@ eumiro的解決方案對於相當大範圍的陣列大小來說是非常有效的。我會建議你的特定案例的基準,看看哪個更好,還注意到'np.setdiff1d'有一個選項,如果兩個數組只包含唯一值,這可以加快速度。 – JoshAdel 2011-12-31 20:45:14