逐行比较列表
我有 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_1和list_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])