簡體   English   中英

將向量和矩陣相乘以在 numpy 中創建 3D 矩陣

[英]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.

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