开发者社区> 问答> 正文

在一个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可以做到这一点吗? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-09 12:06:53 381 0
1 条回答
写回答
取消 提交回答
  • 像您显示的正常乘法:

    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]])

    2020-02-09 12:07:03
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载