如何以pythonic方式从两个向量中获得以下矩阵?

时间:2018-09-06 07:36:36

标签: python-3.x numpy matrix

我有两个向量 a b ,我需要构建一个像这样的矩阵:

enter image description here

一种可行的解决方案是将 a 扇区堆叠三遍,然后进行逐元素乘法。

a = numpy.array([1,2,3])
b = numpa.array([10,20,30])
c = numpy.vstack((a,a,a)) * b

是否有更有效的方法?

1 个答案:

答案 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