我正在尝试将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可以做到这一点吗? 问题来源于stack overflow
像您显示的正常乘法:
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], [ 4, 5, 6], [14, 16, 18]])
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。