簡體   English   中英

高維數組乘法

[英]High-dimensional array multiplication

考慮以下代碼。

import numpy as np
array1 = np.random.random((3,3,3))
array2 = np.random.random((3,3,3))
array3 = array1@array2

array3包含什么? 我知道它也有形狀(3,3,3) 如果array1array2是二維的,那么array3就是arrays的矩陣乘法。 @操作有數學意義嗎?

這在PEP 465中有解釋:

對於超過 2 維的輸入,我們將最后兩個維度視為要相乘的矩陣維度,並“廣播”到其他維度。 這提供了一種在單個操作中快速計算許多矩陣乘積的便捷方法。 例如, arr(10, 2, 3) @ arr(10, 3, 4)執行 10 個單獨的矩陣乘法,每個乘法將 2x3 和 3x4 矩陣相乘產生 2x4 矩陣,然后將 10 個結果矩陣一起返回在形狀為 (10, 2, 4) 的數組中。

因此,對於您的代碼array3[0, :, :]包含矩陣矩陣乘法array1[0, :, :] @ array2[0, :, :]等的結果。

在numpy @矩陣乘法

*進行元素明智的乘法或Hadamard 乘積

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM