最有效的方法是从二维数组中找到最大元素和最大元素列表?

时间:2018-01-10 19:50:40

标签: python-3.x

假设我有一个列表arr=[[1,2,3],[4,5,6],[7,8,9]],此处最大元素为9,且1 d列表中的最大元素为[3,6,9]

3 个答案:

答案 0 :(得分:2)

使用嵌套理解展平数组,以获取所有元素的最大值:

>>> max(x for row in arr for x in row)
9

对每行的最大值使用列表推导:

>>> [max(row) for row in arr]
[3, 6, 9]

注意:列表comp比使用map(max, arr)稍快一些。如果您想要比纯Python循环更好的性能,请考虑使用numpy

答案 1 :(得分:1)

如果使用numpy

>>>import numpy as np

>>>array=np.random.rand(3,3)
>>>print(array)
>>>print(array.max(axis=1))
>>>[[ 0.76562624  0.45225107  0.74276688]
     [ 0.84390255  0.03384166  0.40036534]
     [ 0.00371805  0.47996941  0.15593055]]

>>>[ 0.76562624  0.84390255  0.47996941]

或者使用map和max

>>>arr=[[1,2,3],[4,5,6],[7,8,9]]
>>>print(list(map(max,arr)))
>>>[3,6,9]

打印最大元素

>>>print(max(map(max,arr)))
>>>9

使用numpy

>>>print(array.max())

答案 2 :(得分:0)

>>> arr=[[1,2,3],[4,5,6],[7,8,9]] 
>>> max_row = map(max, arr)
>>> list(max_row)
[3, 6, 9]
>>> maxmax = max(max_row)
>>> maxmax
9
>>> _