繁体   English   中英

从 numpy 数组中连接并删除重复元素

[英]concatenate and remove duplicate element from numpy arrays

我在循环的每次迭代中计算一个索引数组,然后我想删除重复的元素并将计算的数组连接到前一个元素。 例如,第一次迭代给了我这个数组:

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

第二个:

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

等等。 我怎么能做到?

您可以先使用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]

您可以使用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])

numpy.union1d是您正在寻找的 one-numpy 函数(在这种情况下)。

import numpy as np
print( np.union1d([ 1, 6,56,120,162,170,176,179,197,204],\
                  [29,31,56,104,162,170,176,179,197,204]) )
# result
[  1   6  29  31  56 104 120 162 170 176 179 197 204]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM