3 回答
TA贡献1859条经验 获得超6个赞
您可以使用reduceufunc的方法:
>>> np.multiply.reduce((X, Y, Z))
array([ 28, 80, 162])
这里发生的事情是 ufunc np.multiply,它的外观和行为类似于函数,从技术上讲是类的一个实例numpy.ufunc;所有 ufunc 都有四个特殊方法,其中之一是.reduce(),它在这种情况下执行您要查找的操作,并从多个相同长度的一维数组中生成一维结果。
默认轴为0;如果您想沿另一个轴工作,只需指定:
>>> np.multiply.reduce((X, Y, Z), axis=1)
array([ 6, 120, 504])
TA贡献1880条经验 获得超4个赞
您可以使用numpy.prod, 它multiply.reduce在引擎盖下使用。
>>> np.prod([X, Y, Z], 0)
array([ 28, 80, 162])
>>> np.prod([X, Y, Z], 1)
array([ 6, 120, 504])
TA贡献1806条经验 获得超5个赞
或者非常简单地使用通常的*符号:
In [180]: X * Y * Z
Out[180]: array([ 28, 80, 162])
通常,您可以根据需要使用任意数量的数组:
In [181]: X * Y * Z * X * Y * Z
Out[181]: array([ 784, 6400, 26244])
添加回答
举报