计算多个输入的矩阵乘积
compute matrix product for multiple inputs
我正在尝试计算 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 中。
numpy 点
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()
我正在尝试计算 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 中。
numpy 点
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()