【问题标题】:Numpy - Multiply each element of a matrix with the element of another matrix at the same position [duplicate]Numpy - 将矩阵的每个元素与同一位置的另一个矩阵的元素相乘[重复]
【发布时间】:2020-06-21 13:47:10
【问题描述】:

我想将 3D 矩阵的每个元素与相同位置的相同大小矩阵的元素相乘。

在 2D 中它看起来像:

除了for循环之外,numpy还有什么干净的解决方案吗?

编辑: 这个矩阵运算被命名为“Hadamard product”

【问题讨论】:

    标签: python numpy matrix


    【解决方案1】:

    只需将它们相乘即可。 numpy 支持矩阵运算。

    x = np.arange(1, 10).reshape(3, 3)
    
    array([[1, 2, 3],
           [4, 5, 6],
           [7, 8, 9]])
    
    print(x*x)
    

    所有元素都将乘以各自的数字。

    array([[ 1,  4,  9],
           [16, 25, 36],
           [49, 64, 81]])
    

    【讨论】:

    • 很好的答案,尽管提供的示例不一定展示结果的元素性质。
    • 你是对的,我改变了例子。
    • 这会做矩阵乘法,而不是像 OP 要求的那样进行元素乘法
    【解决方案2】:

    您可以使用简单的* 与 numpy 数组进行元素乘法。

    a = np.array([[1,2],[3,4]])
    b = np.array([[1,2],[3,4]])
    
    print(a*b)
    

    会给你

    [[ 1  4]
     [ 9 16]]
    

    【讨论】:

    • 这是一个很好的明确答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    • 2017-09-10
    • 1970-01-01
    相关资源
    最近更新 更多