gpt4 book ai didi

python - 有没有一种优雅的方法可以在单行矩阵和多行矩阵的每一行之间进行点积?

转载 作者:行者123 更新时间:2023-11-30 22:38:19 25 4
gpt4 key购买 nike

是否有任何优雅的方法可以在Python中的单行矩阵和两行或多行矩阵的每一行之间进行点积?我使用列表或列表列表来表示矩阵。

最佳答案

如果 A 是一个 n×m 矩阵(n 行,每行包含 m 个条目),并且 v 是 m 个条目的行向量,则“点积行向量与两行或多行矩阵的每一行之间的关系”通常称为 Av.T 之间的矩阵向量乘积(v,即列向量)。

对于 Numpy,这只是 np.dot(A, np.reshape(v, (-1, 1)))。在普通的 Python 中,您可以编写如下内容:

def inner_product(u, v):
'Inner product between two numeric arrays.'
return sum(x*y for x, y in zip(u, v))

def mat_vec_product(a, v):
'Dot product between matrix `a` and column vector `v`.'
return [inner_product(u, v) for u in a]

>>> mat = [
... [0, 0, 0],
... [0, 0, 1],
... [0, 1, 0],
... [0, 1, 1],
... [1, 0, 0],
... [1, 0, 1],
... ]
>>> row = [100, 20, 3]
>>> print(mat_vec_product(mat, row))
[0, 3, 20, 23, 100, 103]

关于python - 有没有一种优雅的方法可以在单行矩阵和多行矩阵的每一行之间进行点积?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43622878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com