L. *_* B. 2 python numpy multiplication multidimensional-array numpy-ndarray
我正在寻找一种矢量化方法来在 NumPy 中乘以 3 个以上的向量。
举个例子,
X = np.array([1,2,3])
Y = np.array([4,5,6])
Z = np.array([7,8,9])
Multiply([X,Y,Z])
Run Code Online (Sandbox Code Playgroud)
将产生作为输出
np.array([28, 80, 162])
Run Code Online (Sandbox Code Playgroud)
我想要相乘的向量不需要像上面那样单独定义。例如,可以是矩阵的行(或列),在这种情况下,我想将此类矩阵的所有行(或列)相乘。
帮助赞赏:)
您可以使用reduceufunc的方法:
>>> np.multiply.reduce((X, Y, Z))
array([ 28, 80, 162])
Run Code Online (Sandbox Code Playgroud)
这里发生的事情是 ufunc np.multiply,它的外观和行为都像函数,从技术上讲是该类的一个实例numpy.ufunc;所有 ufunc 都有四种特殊方法,其中之一是.reduce(),它可以完成您在本例中寻找的操作,并从多个相同长度的一维数组生成一维结果。
默认轴为0;如果您想沿另一个轴工作,只需指定:
>>> np.multiply.reduce((X, Y, Z), axis=1)
array([ 6, 120, 504])
Run Code Online (Sandbox Code Playgroud)