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])
添加回答
舉報
