嘿,伙计们,我想知道在Python/NuMPy中获得“n”矩阵的最大值的最佳方法。
例如:
import numpy as np
matrices=[np.random.random((5,5)) for i in range(10)]
# the function np.maximum from numpy only works for two matrices.
max_matrix=np.maximum(matrices[0],matrices[1])
max_matrix=np.maximum(*matrices) # <- error
你将如何克服这个问题?
最佳答案
使用reduce
:
reduce(np.maximum, matrices)
从docs开始:
reduce
(函数,iterable[,初始值设定项])将两个参数的函数累加应用于iterable的项,
从左到右,以便将iterable减少为单个值。
例如,
reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])
计算((((1+2)+3)+4)+5)
左参数x
是累积值,并且右参数
y
是iterable的更新值如果存在可选的初始值设定项,它放在
在计算中为iterable,当iterable
是空的如果未给定初始值设定项且iterable仅包含一个
项,返回第一个项。