亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 NumPy 中一次乘以 3 個以上的向量

如何在 NumPy 中一次乘以 3 個以上的向量

慕田峪9158850 2022-01-05 12:08:42
我正在尋找一種在 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])我想要相乘的向量不需要像上面那樣單獨定義。例如,可能是矩陣的行(或列),在這種情況下,我想乘以此類矩陣的所有行(或列)。
查看完整描述

3 回答

?
BIG陽

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])


查看完整回答
反對 回復 2022-01-05
?
慕村225694

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])


查看完整回答
反對 回復 2022-01-05
?
忽然笑

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])


查看完整回答
反對 回復 2022-01-05
  • 3 回答
  • 0 關注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號