如何在数组列表中查找最大值

时间:2017-12-06 11:38:23

标签: python pandas

我有一个非常大的数组列表,看起来像这样:

'apples': array([1,2,3,4]), 'pears': array([1,2,10,11]),'oranges': array([1,10,10,3])

我想找到所有数组中的最大值。在我上面的简短示例中,它将是11.

我正在努力编写能够为列表中的所有数组提供最大值的东西。任何想法都会受到欢迎。

8 个答案:

答案 0 :(得分:2)

您的列表实际上是一本字典,因此您可以这样做:

arr = {'apples': [1,2,3,4], 'pears': [1,2,10,11],'oranges': [1,10,10,3]}
res = max(map(max, arr.values()))
print(res)

输出:

11

您也可以使用chain模块中的itertools函数执行此操作:

from itertools import chain

arr = {'apples': [1,2,3,4], 'pears': [1,2,10,11],'oranges': [1,10,10,3]}
res = max(chain(max(i) for i in arr.values()))
print(res)

输出:

11

答案 1 :(得分:1)

这会有用吗?

big_dict = {"apple" : list([1,2,3]),
            "pear" : list([4,5,6])}

print max([max(v) for v in big_dict.itervalues()])

答案 2 :(得分:0)

从你给出的例子来看,它看起来像是字典而不是列表,但为了简单起见,我们假设它是一个以下形式的列表:

[[2,3,55],[23,5,63],[2,3,6],[4,6,78], ...]

所以你可以做的是遍历主列表并将当前最大值保存在变量中,并且只比较每个数组的最大值,如果更大则更新。

示例

max_value = 0
for l in yourList:
    curr = max(l)
    if curr > max_value:
        max_value = curr
print max_value

这可以很容易地转换为使用字典而不是列表,只是迭代字典中的每个项目,逻辑将是相同的(必须从值中获得max()。) p>

希望这有帮助!

答案 3 :(得分:0)

如果您的数据位于字典变量d中,请尝试尝试

l=[max(d[key]) for key in d.keys()]
print max(l)

或者你可以使用一个班轮

print max([max(d[key]) for key in d.keys()])

答案 4 :(得分:0)

你不能直接这样做,尝试形成另一个数组并检查'max(arraylist)'

答案 5 :(得分:0)

首先创建一个新列表,其中包含每个词典元素的最大值,然后获取该新列表的最大值

dict = {"apples" : [1, 2, 8, 4], "fruits": [3,2,6]} 

maxlst = [max(el) for el in dict.values()]
print(max(maxlst))

答案 6 :(得分:0)

对我来说,更蟒蛇的方式是使用理解词:

dictionary = {'apples': np.array([1,2,3,4]), 
'pears': np.array([1,2,10,11]),'oranges': np.array([1,10,10,3])}

In [144]: { k:v.max() for k,v in dictionary.items() }
Out[144]: {'apples': 4, 'oranges': 10, 'pears': 11}

另一种简单的方法是使用pandas:

In [145]: pd.DataFrame(dictionary).max()
Out[145]: 
apples      4
oranges    10
pears      11
dtype: int32

答案 7 :(得分:0)

对于大型列表

,您可以使用以下内容
obj={'apples': [1,2,3,4], 'pears': [1,2,10,11],'oranges': [1,10,10,3]}

max(sum(obj.values(), []))

11