带列表的数组列表的python最大值

带列表的数组列表的python最大值,python,arrays,list,max,Python,Arrays,List,Max,可能重复: 我有一个数组列表,如: a = [array([ [6,2] , [6,2] ]),array([ [8,3],[8,3] ]),array([ [4,2],[4,2] ])] 我尝试了max(a),返回以下错误: ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() 我希望它返回一个列表或数组,如: In: max(a) O

可能重复:

我有一个数组列表,如:

a = [array([ [6,2] , [6,2] ]),array([ [8,3],[8,3] ]),array([ [4,2],[4,2] ])]
我尝试了
max(a)
,返回以下错误:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我希望它返回一个列表或数组,如:

In: max(a)
Out: [[8,3],[8,3]]

我不想将内部数组转换为列表,因为列表的大小非常大。我还特意创建了这样的数组来执行数组操作。

不管怎样,我不确定你之前的答案是否足够,但是如果你处理的是numpy数组,那么为什么整个数组不是数组,而不是数组列表。。。然后只需使用适当的numpy函数:

from numpy import array

a = array(
    [
    array([ [6,2], [6,2] ]),
    array([ [8,3], [8,3] ]),
    array([ [4,2], [4,2] ])
    ]
)

print a.max(axis=0)
#[[8 3]
# [8 3]]

在您的示例中,您可以执行以下操作:

max(a, key=lambda i: i[0][0])
取决于你想要什么样的结果(排序使用什么键),你可能需要“玩”索引

关于:

max(a, key=lambda x:np.max(x))
# array ([[8, 3], [8, 3]])
请注意:第一个最大值是“正常最大值”,第二个是np的最大值。。。这里的逻辑是max使用np.max作为比较键,np.max返回数组中的最高数字


这就是你想要的吗?

而你从中接受的答案不适合…?这篇文章帮助我得到了我需要的。这正适合我的情况。非常感谢你。