Python 如何获取每个矩阵行的最大值并将其保存在另一个列表中?
我得到了如下矩阵:Python 如何获取每个矩阵行的最大值并将其保存在另一个列表中?,python,list,max,Python,List,Max,我得到了如下矩阵: matrix = [ [0,0,2],[1,0,1],[2,1,0] ] 我想得到一份如下的清单: [2,1,2] [2,1,3] 比较是每列的比较,因此矩阵[0][0]与矩阵[1][0]和矩阵[2][0]比较,谢谢 另一个例子是: [[0,0,2],[1,0,1],[2,1,0],[2,1,3]] 我想得到一份如下的清单: [2,1,2] [2,1,3] 使用map进行列表理解的替代方法: >>> list(map(max, l)) #驱动程
matrix = [ [0,0,2],[1,0,1],[2,1,0] ]
我想得到一份如下的清单:
[2,1,2]
[2,1,3]
比较是每列的比较,因此矩阵[0][0]与矩阵[1][0]和矩阵[2][0]比较,谢谢 另一个例子是:
[[0,0,2],[1,0,1],[2,1,0],[2,1,3]]
我想得到一份如下的清单:
[2,1,2]
[2,1,3]
使用
map
进行列表理解的替代方法:
>>> list(map(max, l))
#驱动程序值:
IN : l = [ [0,0,2],[1,0,1],[2,1,0] ]
OUT : [2, 1, 2]
IN : l = [[0,0,2],[1,0,1],[2,1,0],[2,1,3]]
OUT : [2, 1, 3]
编辑:以上内容为每个内部列表查找最大值。OP的预期行为也是如此(按列):
#驱动程序值:
IN : l = [ [0,0,2],[1,0,1],[2,1,0] ]
OUT : [2, 1, 2]
IN : l = [[0,0,2],[1,0,1],[2,1,0],[2,1,3]]
OUT : [2, 1, 3]
如果您愿意使用第三方库,
numpy
提供了一种方法
这假定列表元素具有相同的长度
import numpy as np
A = np.array([[0,0,2],[1,0,1],[2,1,0],[2,1,3]])
res = A.max(axis=0)
# array([2, 1, 3])
正如其他人所说,您可以使用
>>> [max(i) for i in a]
[2, 1, 2]
但也有一种与你想要的相反的东西
>>> [min(i) for i in a]
[0, 0, 0]
列表理解、压缩和缩减的组合也应提供所需的结果:
matrix = [[0,0,2],[1,0,1],[2,1,0],[2,1,3]]
max_cols = [max(list(i)) for i in zip(*matrix)]
max_cols具有矩阵列的最大值-[2,1,3]完美的一列…+1:)实际上,列表理解通常比
map
快(当然,假设您对结果执行list(…)
)。比较是每列的比较,因此矩阵[0][0]与矩阵[1][0]和矩阵[2][0]相比,thanks@WillemVanOnsem:谢谢。我出于某种原因忽略了这一点。已更改答案。比较是每列的比较,因此矩阵[0][0]与矩阵[1][0]和矩阵[2][0]进行了比较,谢谢