将numpy数组的每一列与另一个数组的每个值相乘

Pea*_*cer 7 python numpy python-3.x

假设我有以下两个numpy数组:

In [251]: m=np.array([[1,4],[2,5],[3,6]])

In [252]: m
Out[252]: 
array([[1, 4],
       [2, 5],
       [3, 6]])

In [253]: c= np.array([200,400])

In [254]: c
Out[254]: array([200, 400])
Run Code Online (Sandbox Code Playgroud)

我想一步得到以下数组,但对于我的生活,我无法弄清楚:

In [252]: k
Out[252]: 
array([[200, 800, 400, 1600],
       [400, 1000, 800, 2000],
       [600, 1200, 1200,2400]])
Run Code Online (Sandbox Code Playgroud)

myr*_*cat 12

您想要的转型称为Kronecker产品.Numpy具有以下功能numpy.kron:

In [1]: m = np.array([[1,4],[2,5],[3,6]])

In [2]: c = np.array([200,400])

In [3]: np.kron(c, m)
Out[3]: 
array([[ 200,  800,  400, 1600],
       [ 400, 1000,  800, 2000],
       [ 600, 1200, 1200, 2400]])
Run Code Online (Sandbox Code Playgroud)