我正在寻找一种矢量化的方法来在NumPy中乘以3个以上的向量。
举个例子,
X = np.array([1,2,3])
Y = np.array([4,5,6])
Z = np.array([7,8,9])
Multiply([X,Y,Z])
将产生作为输出
np.array([28, 80, 162])
我想要相乘的向量不必像上面那样单独定义。例如,可以是矩阵的行(或列),在这种情况下,我想将这种矩阵的所有行(或列)相乘。
帮助赞赏:)
最佳答案
您可以使用ufunc的reduce
方法:
>>> np.multiply.reduce((X, Y, Z))
array([ 28, 80, 162])
这里发生的是,从功能上看,ufunc
np.multiply
从技术上讲是类numpy.ufunc
的实例。所有ufunc都具有four special methods,其中一个是.reduce()
,在这种情况下,它会执行您要查找的操作,并从多个相同长度的1d数组生成1d结果。默认轴为0;默认轴为0。如果要沿另一个轴工作,只需指定:
>>> np.multiply.reduce((X, Y, Z), axis=1)
array([ 6, 120, 504])
关于python - 如何在NumPy中一次乘以3个以上的向量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55599437/