[英]Given a list of arrays or 3 dimensional array, how do you find the maximum value?
[英]How to find maximum value in a list of arrays
我有一個非常大的數組列表,看起來像這樣:
'apples': array([1,2,3,4]), 'pears': array([1,2,10,11]),'oranges': array([1,10,10,3])
我想找到所有數組中的最大值。 在我上面的簡短示例中,它將是11。
我正在努力寫一些能給我列表中所有數組最大值的東西。 任何想法都會受到歡迎。
你的列表實際上是一本字典,所以你可以這樣做:
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
您也可以使用itertools
模塊中的chain
函數來完成它:
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
這會有用嗎?
big_dict = {"apple" : list([1,2,3]),
"pear" : list([4,5,6])}
print max([max(v) for v in big_dict.itervalues()])
從你給出的例子來看,它看起來像是字典而不是列表,但為了簡單起見,我們假設它是一個以下形式的列表:
[[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()
)。
希望這可以幫助!
如果您的數據在字典變量d中,請嘗試一下
l=[max(d[key]) for key in d.keys()]
print max(l)
或者你可以使用一個班輪
print max([max(d[key]) for key in d.keys()])
你不能直接這樣做,嘗試形成另一個數組並檢查'max(arraylist)'
首先創建一個新列表,其中包含每個詞典元素的最大值,然后獲取該新列表的最大值
dict = {"apples" : [1, 2, 8, 4], "fruits": [3,2,6]}
maxlst = [max(el) for el in dict.values()]
print(max(maxlst))
對我來說,更加pythonic的方式是使用理解詞:
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}
另一種簡單的方法是使用熊貓:
In [145]: pd.DataFrame(dictionary).max()
Out[145]:
apples 4
oranges 10
pears 11
dtype: int32
對於大型列表,您可以使用下面的內容
obj={'apples': [1,2,3,4], 'pears': [1,2,10,11],'oranges': [1,10,10,3]}
max(sum(obj.values(), []))
11
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.