我很难做到这一点。我有两个m×n矩阵(A和B),我需要将A的每一列乘以B中的行,以生成m x(n * n)矩阵。我想我在解释中并不是很清楚所以我会发布一个例子:
A =
[1 2
3 4]
B =
[5 6
7 8]
我希望:
[[5 6] [10 12]
[21 24] [28 32]]
我能够使用for
循环执行此操作,但我希望尽可能避免使用for
。同时对所有这些使用numpy,所有数据都存储为np.array
。
答案 0 :(得分:3)
也许:
>>> A = np.array([[1,2],[3,4]])
>>> B = np.array([[5,6],[7,8]])
>>> (A * B[None, :].T).T
array([[[ 5, 6],
[21, 24]],
[[10, 12],
[28, 32]]])
我们使用None
为B
添加额外维度,并使用一些转置来使对齐正确。
答案 1 :(得分:0)
如果我理解你,你想要基本的(m * n)乘法吗?使用numpy.dot():
>>> a = [[1, 0], [0, 1]]
>>> b = [[4, 1], [2, 2]]
>>> np.dot(a, b)
array([[4, 1],
[2, 2]])