[英]multiply a vector and a matrix to create a 3D matrix in numpy
我有一個 zise MxN 的矩陣 A 和大小為 L 的向量 b。我如何創建一個大小為 MxNxL 的矩陣 C 以便:
C[m, n, k] = A[m, n] * b[k]
與創建二維矩陣的兩個向量的點積幾乎相同,但維數更高。
我嘗試了點積的一些變體,但找不到。
您不需要點積(軸上積的總和),而是創建新維度的簡單積。
使用廣播:
C = A[..., None] * b
例子:
A = np.ones((2,3))
b = np.ones(4)
C = A[..., None] * b
C.shape
# (2, 3, 4)
解決問題最直觀的方法是使用np.einsum
。 它遵循您在問題本身中編寫的數學方程式。
A = np.ones((2,3))
b = np.ones(4)
C = np.einsum('ij, k -> ijk', A,b)
C.shape
# (2, 3, 4)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.