假设我有以下两个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])
我想在一个步骤中获得以下数组,但我终生无法弄清楚:
In [252]: k
Out[252]:
array([[200, 800, 400, 1600],
[400, 1000, 800, 2000],
[600, 1200, 1200,2400]])
发布于 2018-02-23 05:02:23
您想要的转换称为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]])
发布于 2018-02-23 05:03:58
您可以将np.concatenate
与列表理解一起使用:
np.concatenate([m * x for x in c], axis=1)
这将为您提供
array([[ 200, 800, 400, 1600],
[ 400, 1000, 800, 2000],
[ 600, 1200, 1200, 2400]])
https://stackoverflow.com/questions/48937018
复制相似问题