簡體   English   中英

Numpy 運算符用於具有矩陣單獨行乘法的每個向量元素

[英]Numpy operator for each vector element with matrix individual row multiplication

是否有一個 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 中是否存在內置的 function ,尤其是當 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

這應該相當快,沒有額外的計算成本。

output:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM