Skip to main content
 首页 » 编程设计

python之合并两个 numpy 数组并删除重复项

2025年05月04日21yjmyzz

我有一个 numpy 数组 =

[1,6,7,9,3,5] 

和第二个 numpy 数组 =

[3,5,8,9,2] 

我想将这两个数组合并在一起:

[1,6,7,9,3,5,3,5,8,9,2] 

然后删除numpy数组中的重复项得到:

[1,6,7,9,3,5,8,2] 

我想尽可能多地保留数组一并取出数组二中没有出现在数组一中的元素,然后附加这些元素。

我不确定这样做是否更有意义:

  1. 合并两个数组并删除重复项。 或
  2. 遍历数组 2 的元素,如果它们没有出现在数组 1 中,则连接到数组 1。

我尝试过使用各种循环,但这些循环似乎主要用于列表,我也尝试过使用 set() 但这命令 numpy 数组,我想保留随机订单。

请您参考如下方法:

要连接两个数组,您可以简单地使用 np.concatenate

在保留顺序的同时删除重复项有点棘手,因为通常 np.unique也可以排序,但您可以使用 return_index 然后排序来解决这个问题:

In [61]: x 
Out[61]: array([1, 6, 7, 9, 3, 5]) 
 
In [62]: y 
Out[62]: array([3, 5, 8, 9, 2]) 
 
In [63]: z = np.concatenate((x, y)) 
 
In [64]: z 
Out[64]: array([1, 6, 7, 9, 3, 5, 3, 5, 8, 9, 2]) 
 
In [65]: _, i = np.unique(z, return_index=True) 
 
In [66]: z[np.sort(i)] 
Out[66]: array([1, 6, 7, 9, 3, 5, 8, 2])