3 回答

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個贊
您可以使用reduceufunc的方法:
>>> np.multiply.reduce((X, Y, Z))
array([ 28, 80, 162])
這里發(fā)生的事情是 ufunc np.multiply,它的外觀和行為類似于函數(shù),從技術(shù)上講是類的一個實(shí)例numpy.ufunc;所有 ufunc 都有四個特殊方法,其中之一是.reduce(),它在這種情況下執(zhí)行您要查找的操作,并從多個相同長度的一維數(shù)組中生成一維結(jié)果。
默認(rèn)軸為0;如果您想沿另一個軸工作,只需指定:
>>> np.multiply.reduce((X, Y, Z), axis=1)
array([ 6, 120, 504])

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超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貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個贊
或者非常簡單地使用通常的*符號:
In [180]: X * Y * Z
Out[180]: array([ 28, 80, 162])
通常,您可以根據(jù)需要使用任意數(shù)量的數(shù)組:
In [181]: X * Y * Z * X * Y * Z
Out[181]: array([ 784, 6400, 26244])
添加回答
舉報(bào)