2014-09-03 60 views
2

我計算循環的每個迭代中的索引數組,然後我想要刪除重複的元素並將計算的數組連接到前一個。 例如在第一次迭代給我此數組:連接並從數組中刪除重複的元素

array([ 1, 6, 56, 120, 162, 170, 176, 179, 197, 204]) 

,第二個:

array([ 29, 31, 56, 104, 162, 170, 176, 179, 197, 204]) 

等。我怎麼能這樣做?

+0

HTTP://docs.scipy .ORG/DOC/numpy的/參照/生成/ numpy.setxor1d.html#NUM py.setxor1d – Ron 2014-09-03 22:36:17

+0

@Ron它刪除我想保留它們的重複號碼。 – Dalek 2014-09-03 22:38:11

回答

4

你可以用numpy.concatenate第一串聯陣列,然後使用np.unique

import numpy as np 
a=np.array([1,6,56,120,162,170,176,179,197,204]) 
b=np.array([29,31,56,104,162,170,176,179,197,204]) 
new_array = np.unique(np.concatenate((a,b),0)) 

print new_array 

結果:

[ 1 6 29 31 56 104 120 162 170 176 179 197 204] 
+0

看起來像你打敗了我。 – 2014-09-03 22:41:27

1

您可以使用numpy.concatenatenumpy.unique

In [81]: arr = np.array([ 1, 6, 56, 120, 162, 170, 176, 179, 197, 204]) 

In [82]: arr = np.unique(np.concatenate((arr, np.array([ 29, 31, 56, 104, 162, 170, 176, 179, 197, 204])))) 

In [83]: arr 
Out[83]: array([ 1, 6, 29, 31, 56, 104, 120, 162, 170, 176, 179, 197, 204])