我有两个向量 a 和 b ,我需要构建一个像这样的矩阵:
一种可行的解决方案是将 a 扇区堆叠三遍,然后进行逐元素乘法。
a = numpy.array([1,2,3])
b = numpa.array([10,20,30])
c = numpy.vstack((a,a,a)) * b
是否有更有效的方法?
答案 0 :(得分:1)
您可以将a-transpose与b进行矩阵乘法:
import numpy as np
a = np.matrix([1, 2, 3])
b = np.matrix([10, 20, 30])
a.T * b
仅包含数组:
import numpy as np
a = np.array([1, 2, 3])
b = np.array([10, 20, 30])
np.multiply.outer(a, b) # thanks to @Divakar in the comments