逐行比较列表

我有 2 个具有相同行数(120)但列大小不同的列表,分别为 2 和 4。这是一个示例:

list_1=[ 1    2          
         3    4
         5    6]

list_2=[ 1   2   3   4
         5   6   7   8
         4   3   2   1]

我想逐行比较两个列表并保存最高的数字。换句话说,我想比较第 1 行list_1list_2并保存具有最高值的数字,并对以下行执行相同操作。

以下是所需输出的示例:

list_3=[ 4      #result from list_2
         8      #result from list_2
         6]     #result from list_1

我试过这个argmax函数,但是当我使用 argmax(list1, axis = 1)它时它只返回索引,而不是实际值,如果我使用argmax(array)它返回整个列表的最大值。

我可以使用for并保存每行中的最大值,但是是否有特定的功能?

回答

假设“列表”确实是 NumPy 数组,如评论中所建议的,您可以使用np.max()首先获取每行的最大值,分别为每个列表,然后获取列表之间的最大值:

import numpy as np

list_1 = np.array([[1, 2],
                   [3, 4],
                   [5, 6]])
list_2 = np.array([[1, 2, 3, 4],
                   [5, 6, 7, 8],
                   [4, 3, 2, 1]])

line_max_1 = np.max(list_1, axis=1)
line_max_2 = np.max(list_2, axis=1)

np.max([line_max_1, line_max_2], axis=0)
array([4, 8, 6])


以上是逐行比较列表的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>