[英]Is there a vectorized way to do matrix multiplication-like operations in NumPy?
我有一個形狀為mxn的矩陣A和另一個形狀為kxn 的較小矩陣B 。 我想計算 A 和 B 行之間的歐幾里德距離,生成形狀為mxk的矩陣C 。 我已經有一個函數dist(row1, row2)
。 使用循環這很簡單,但是在 NumPy 中是否有一種矢量化的方法來做到這一點?
我相信我想要的可以轉換為自定義矩陣乘法式操作(如果我轉置 B),並且這個問題似乎朝着相同的方向發展,但最好的答案是重新排列操作以實現矢量化(我想要使用我單獨的函數dist(row1, row2)
)。 第二個答案使用單獨的函數,但它也使用循環。
嘗試以下可能有幫助? 如果A
是形狀mxn
並且B
是形狀kxn
, C
應該是形狀mxk
C = np.linalg.norm([A[:,None,:]-B],axis=-1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.