首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将numpy数组的每一列与另一数组的每一值相乘

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

Stack Overflow用户
提问于 2018-02-23 04:57:20
回答 2查看 11.6K关注 0票数 5

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

代码语言:javascript
复制
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])

我想在一个步骤中获得以下数组,但我终生无法弄清楚:

代码语言:javascript
复制
In [252]: k
Out[252]: 
array([[200, 800, 400, 1600],
       [400, 1000, 800, 2000],
       [600, 1200, 1200,2400]])
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-23 05:02:23

您想要的转换称为Kronecker产品。Numpy将此函数用作numpy.kron

代码语言:javascript
复制
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]])
票数 12
EN

Stack Overflow用户

发布于 2018-02-23 05:03:58

您可以将np.concatenate与列表理解一起使用:

代码语言:javascript
复制
np.concatenate([m * x for x in c], axis=1)

这将为您提供

代码语言:javascript
复制
array([[ 200,  800,  400, 1600],
       [ 400, 1000,  800, 2000],
       [ 600, 1200, 1200, 2400]])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48937018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档