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

问题描述 投票:1回答:3

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

python-3.x
3个回答
1
投票

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

Alternatively using map and max

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

To print maximum element

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

Using numpy

>>>print(array.max())

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


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
>>> _
© www.soinside.com 2019 - 2024. All rights reserved.