列max与矩阵列表

时间:2014-08-11 13:19:18

标签: python numpy scipy

给出一个numpy 2d列表 - 大小为mxn的数组,获取大小为n的数组的最佳方法是什么(列表中每个矩阵的列数)在列表中的所有矩阵中,i - 数组的值是列i的最大值?

2 个答案:

答案 0 :(得分:1)

>>> 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])]

答案 1 :(得分:0)

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

np.vstack(list_of_arrays).max(axis=0)