2017-06-21 48 views
1

我會如何去比較兩個不同的numpy數組來創建第三個數組?我想寫一個循環,通過兩個數組進入並打印新的數組「C」,只有不在a或bNumpy Array Subtraction

例如說我有

a = [1,2,3,4] 
b = [1,2,3,4,5,6,7,8,9] 

我希望它的值打印:

c = [5,6,7,8,9] 
+0

C =列表(集合(B).difference(設定的(a))) – suvy

+1

那些是*列表*。你真的在用'numpy.ndarray'嗎? –

回答

2

您可以在Numpy中使用設置差異操作:numpy.setdiff1d。 從Numpy docs

>>> a = np.array([1, 2, 3, 2, 4, 1]) 
>>> b = np.array([3, 4, 5, 6]) 
>>> np.setdiff1d(a, b) 
array([1, 2]) 
+1

可能值得明確指出(儘管來自docs的示例已經精心製作,可以隱式顯示)「setdiff1d」不關心數組中的重複。歡迎來到堆棧溢出! –

+0

非常感謝! – cryptofish

+0

OP指定哪個數組應該從另一個數組中減去。看起來他想要任何數組中的所有唯一值:'a = np.array([1,2,3,4,1,1]) b = np.array([3,4,5,6]) c = np.concatenate((np.setdiff1d(a,b),np.setdiff1d(b,a)))' – jack6e