首页 > 解决方案 > 将列表元素与numpy数组中的列进行比较

问题描述

我有一个python列表如下。

list=['M', 'R', 'W']

和一个如下的numpy数组。

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

我想将其中的每个元素list与 的第一列进行比较array,然后new_array使用匹配的元素创建一个。所以典型的输出如下。

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

我尝试了以下代码。

new_array=np.empty((4,3)) 

for i in range (0,len(list)):
           if list[i]==array[i; 0:1]
                new_array=np.append(new_array, (array[i,1:4].reshape(4,3)), axis=0)

标签: pythonnumpy

解决方案


做这个列表理解:

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]]

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

推荐阅读