2014-09-03 62 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])