2012-11-05 61 views
-2

Possible Duplicate:
python max of list of arrays蟒蛇最大

我有这样的阵列的列表:

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

我不想将内部数组转换为列表,因为列表的大小非常大。另外我有目的地创建这样的阵列操作。

+7

而你从http://stackoverflow.com/questions/13227578/python-max-of-list-of-arrays接受的答案是不适合的? –

+0

这篇文章帮助我得到了我需要的东西。 – Thiru

回答

0

无论如何,不​​知道你以前的答案是不够的,但如果你正在处理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]] 
+0

这适用于我的情况。非常感谢你。 – Thiru

0

怎么样:

max(a, key=lambda x:np.max(x)) 
# array ([[8, 3], [8, 3]]) 

请注意:握拳max是 '正常最大',第二个是NP的最大......这里的逻辑是,最大使用np.max因为它是比较的关键,np.max返回数组中最高的数字。

是你想要的吗?