是否有一个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是非常大但稀疏的矩阵时?
谢谢。
您可以如下使用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]]
您可以使用:
a[:,None]*b
输出:
[[ 1 2 3 4]
[10 12 14 16]]