我有两个矩阵
A = array([[ 12., 0.],[ 0., 4.]])
B = array([[ 13., 5.],[ -1., -5.]])
我想得到第三个,其元素对应于先前矩阵的最大值。例如,我想制作类似的东西
C = array([[ 13., 5.],[ 0., 4.]])
我可以做任何矢量运算来使结果更快吗?
使用numpy.maximum
.
>>> np.maximum(A, B)
array([[ 13., 5.],
[ 0., 4.]])
使用 numpy 数组而不是数组更容易。使用 numpy 数组,您可以使用 np.where 函数来解决此问题:
import numpy as np
A = np.array([[ 12., 0.],[ 0., 4.]])
B = np.array([[ 13., 5.],[ -1., -5.]])
C = np.where(A>B,A,B)
>>> C
array([[ 13., 5.],
[ 0., 4.]])
这类似于: np.where(condition, [returnvalue if true, returnvalue if false]) 如果您不传递可选的返回参数,您将获得一个包含条件为真的索引的数组。