带矩阵列表的最大列

2024-05-16 10:06:41 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个大小为mxn的numpy 2d数组的列表,获得大小为n(列表中每个矩阵的列数)的数组的最佳方法是什么,其中i-数组的值是列表中所有矩阵中列i的最大值?你知道吗


Tags: 方法numpy列表矩阵数组mxn列数
2条回答

您可以先垂直堆叠阵列,然后取每列的最大值:

np.vstack(list_of_arrays).max(axis=0)
>>> import numpy as np

>>> a = np.array([[1,11,5,2], [3,9,1,12], [5,7,7,1]])
>>> a
array([[ 1, 11,  5,  2],
       [ 3,  9,  1, 12],
       [ 5,  7,  7,  1]])

按列列出的最大值

>>> a.max(axis=0)
array([ 5, 11,  7, 12])

按行列出的最大值

>>> a.max(axis=1)
array([11, 12,  7])

如果有2D numpy数组列表:

>>> a = np.array([[1,11,5,2], [3,9,1,12], [5,7,7,1]])
>>> b = np.array([[2,4,6,8],[1,3,2,1],[5,6,7,8]])
>>> l = [a,b]

你可以使用列表

>>> [i.max(axis=0) for i in l]
[array([ 5, 11,  7, 12]),
 array([5, 6, 7, 8])]

>>> [i.max(axis=1) for i in l]
[array([11, 12,  7]),
 array([8, 3, 8])]

相关问题 更多 >