Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获取每个矩阵行的最大值并将其保存在另一个列表中?_Python_List_Max - Fatal编程技术网

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]进行了比较,谢谢