0

我正在尝试计算由 b = A*x 给出的变换。A 是 (3,4) 矩阵。如果 x 是一个 (4,1) 向量,则结果是 b (3,1)。

相反,对于 x,我将一堆向量连接成一个矩阵,并且我试图评估 x 的每个值的变换。所以 x 是 (20, 4)。如何在 numpy 中广播它,以便我得到 b (20,3) 的 20 个结果值?

我可以遍历每个输入并计算输出,但感觉必须有更好的使用广播的方法。

例如。

A = [[1,0,0,0],
[2,0,0,0],
[3,0,0,0]]

如果 x 是:

x = [[1,1,1,1],
[2,2,2,2]]

b = [[1,2,3],
[2,4,6]]

x 的每一行都与 A 相乘,结果作为一行存储在 b 中。

4

1 回答 1

0

麻木点

import numpy as np

A = np.random.normal(size=(3,4))

x = np.random.normal(size=(4,20))

y = np.dot(A,x)

print y.shape

结果:(3, 20)

当然,如果你想要 (20,3) 你可以使用 np.transpose()

于 2016-02-29T03:11:08.203 回答