python连乘函数_python-在numpy数组中相乘

python-在numpy数组中相乘

我正在尝试将2D数组中的每个项乘以1D数组中的相应项。 如果我想将每一列乘以一维数组,这非常容易,如numpy.multiply函数所示。 但是我想相反,将行中的每一项相乘。换句话说,我想乘以:

[1,2,3] [0]

[4,5,6] * [1]

[7,8,9] [2]

得到

[0,0,0]

[4,5,6]

[14,16,18]

但是我得到了

[0,2,6]

[0,5,12]

[0,8,18]

有谁知道用numpy可以做到这一点吗?非常感谢,亚历克斯

Alex S asked 2019-10-11T05:21:53Z

6个解决方案

81 votes

像您显示的正常乘法:

>>> import numpy as np

>>> m = np.array([[1,2,3],[4,5,6],[7,8,9]])

>>> c = np.array([0,1,2])

>>> m * c

array([[ 0, 2, 6],

[ 0, 5, 12],

[ 0, 8, 18]])

如果添加轴,它将使您所需的方式成倍增加:

>>> m * c[:, np.newaxis]

array([[ 0, 0, 0],

[ 4, 5, 6],

[14, 16, 18]])

您还可以移调两次:

>>> (m.T * c).T

array([[ 0, 0, 0],

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值