每个具有矩阵单独行乘法的向量元素的Numpy运算符

问题描述 投票:-1回答:2

是否有一个numpy运算符,它将导致单个矢量元素与相应的矩阵行相乘?

例如,

    import numpy
    a,b=numpy.array([1,2]), numpy.array([[1,2,3,4],[5,6,7,8]])

当我将a和b相乘时,我希望结果是

[[1,2,3,4],[10,12,14,16]]

每个向量元素与对应的矩阵行元素相乘。

我知道如何使用循环来实现,但是我只是想知道是否在numpy中存在内置函数,特别是当b是非常大但稀疏的矩阵时?

谢谢。

python numpy sparse-matrix matrix-multiplication
2个回答
1
投票

您可以如下使用multiply

import numpy
a,b=numpy.array([1,2]), numpy.array([[1,2,3,4],[5,6,7,8]])
print(numpy.multiply(a,b.T).T)
# [[ 1  2  3  4]
# [10 12 14 16]]

其他选项是使用*并像下面这样转置:

import numpy
a,b=numpy.array([1,2]), numpy.array([[1,2,3,4],[5,6,7,8]])
print(a*b.T)
# [[ 1 10]
# [ 2 12]
# [ 3 14]
# [ 4 16]]

1
投票

您可以使用:

a[:,None]*b

输出:

[[ 1  2  3  4]
 [10 12 14 16]]
© www.soinside.com 2019 - 2024. All rights reserved.