簡體   English   中英

Numpy:如何乘以 (N,N) 和 (N,N,M,M) numpy 數組?

[英]Numpy: How to multiply (N,N) and (N,N,M,M) numpy arrays?

我想將兩個 numpy 數組相乘。 一個 numpy 數組由形狀(10, 10)的矩陣給出,另一個由矩陣矩陣給出,即形狀(10, 10, 256, 256)

我現在只想將第二個矩陣矩陣中的每個矩陣與第一個矩陣中的相應分量相乘。 例如,第二個矩陣中位置 (0, 0) 處的矩陣應乘以第一個矩陣中位置 (0, 0) 處的值。

直覺上,這並不復雜,但 numpy 似乎並不支持。 或者至少我不夠聰明,無法讓它發揮作用。 拋出的 ValueError 說:

ValueError:操作數無法與形狀一起廣播 (10,10) (10,10,256,256)

你們中的任何人都可以幫助我嗎? 我怎樣才能以一種麻木的方式實現我想要的。

您可以使用 NumPy einsum函數,例如(在此示例中使用零數組作為虛擬對象):

import numpy as np
x = np.zeros((10, 10))
y = np.zeros((10, 10, 256, 256))
z = np.einsum("ij,ijkm->km", x, y)
print(z.shape)
(256, 256)

有關einsum用法的詳細說明,請參見此處

暫無
暫無

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

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