比较具有重复次数的numpy数组与列表

时间:2019-06-21 01:26:27

标签: python arrays numpy

遵循上一个问题,如下所示 Comparing list elements with a column in numpy array,我实现了以下代码以将列表元素与数组进行比较。

list=['M', 'R', 'W']
array=[['M',360.0, 360.0],['R', 135.9, 360.0],['W', 101.4, -125.4], ['Y', 115.8, -160.4],['Y', 115.8, -160.4],['W', 101.4, -125.4]]

new_array = [x for x in array if x[0] in list]
print(new_array)

输出如下。

new_array=[['M', 360.0, 360.0], ['R', 135.9, 360.0], ['W', 101.4, -125.4], ['W', 101.4, -125.4]]

在这里我们看到"W"被重复了两次。

如何只获取列表中最匹配的元素,而忽略列表中存在的其他元素。

因此输出应如下所示。

new_array=[['M', 360.0, 360.0], ['R', 135.9, 360.0], ['W', 101.4, -125.4]]

1 个答案:

答案 0 :(得分:1)

您可以使用index来返回第一个匹配项

l1=[x[0] for x in array]
[array[y] for y in [l1.index(x) for x in l]]
[['M', 360.0, 360.0], ['R', 135.9, 360.0], ['W', 101.4, -125.4]]