2017-06-21 8 views
1

2つの異なるnumpy配列を比較して3番目の配列を作成するにはどうすればよいですか?私はそれがしたい私はナンシー・アレイ減算

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

を持っていると言う私は、2つの配列を通過し、例えばまたはb

にない値だけで新しい配列「c」を出力するループを書きたいです印刷:

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

C =リスト(セット(B).difference(セット(A))) – suvy

+1

ものは*リストです*。実際に 'numpy.ndarray'sで作業していますか? –

答えて

2

Numpyで差異設定操作を使用することができます:numpy.setdiff1dNumpy 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,2,4,1]) b = np.array([3、4、5、6]) すべてのユニークな値が必要です。 c = np.concatenate((np.setdiff1d(a、b)、np.setdiff1d(b、a))) ' – jack6e