Mic*_*l T 8 python arrays numpy max
我想组合两个numpy数组来生成一个数组,每个数组的值最大.
import numpy as np
a = np.array([[ 0., 0., 0.5],
[ 0.1, 0.5, 0.5],
[ 0.1, 0., 0.]])
b = np.array([[ 0., 0., 0.0],
[ 0.5, 0.1, 0.5],
[ 0.5, 0.1, 0.]])
Run Code Online (Sandbox Code Playgroud)
我想生产
array([[ 0., 0., 0.5],
[ 0.5, 0.5, 0.5],
[ 0.5, 0.1, 0.]])
Run Code Online (Sandbox Code Playgroud)
我知道你能做到
a += b
Run Code Online (Sandbox Code Playgroud)
结果
array([[ 0. , 0. , 0.5],
[ 0.6, 0.6, 1. ],
[ 0.6, 0.1, 0. ]])
Run Code Online (Sandbox Code Playgroud)
这显然不是我追求的.这似乎是一个简单的问题,我认为最有可能.
您可以使用np.maximum来计算两个数组的元素最大值:
>>> np.maximum(a, b)
array([[ 0. , 0. , 0.5],
[ 0.5, 0.5, 0.5],
[ 0.5, 0.1, 0. ]])
Run Code Online (Sandbox Code Playgroud)
这适用于任何两个数组,只要它们的形状相同,或者一个可以广播到另一个的形状。
要a就地修改数组,您可以将输出重定向np.maximum回a:
np.maximum(a, b, out=a)
Run Code Online (Sandbox Code Playgroud)
还有np.minimum用于计算两个数组的元素最小值。
您正在寻找元素最大值.
例:
>>> np.maximum([2, 3, 4], [1, 5, 2])
array([2, 5, 4])
Run Code Online (Sandbox Code Playgroud)
http://docs.scipy.org/doc/numpy/reference/generated/numpy.maximum.html