gpt4 book ai didi

python - python中的向量矩阵乘法?

转载 作者:太空宇宙 更新时间:2023-11-04 09:15:07 25 4
gpt4 key购买 nike

所以我想用一个向量乘以一个矩阵。 python 不断抛出错误。这是我正在尝试的代码:

def matmult(m, v):
rows = len(m)
w = [0]*rows
irange = range(len(v))
sum = 0
for j in range(rows):
r = m[j]
for i in irange:
sum += r[i]*v[i]
w[j],sum = sum,0
return w

这不是我的,但那是我在生气并删除它之前编码的。错误是这样的:TypeError: unsupported operand type(s) for +: 'int' and 'list'

我猜 python 将向量视为一个 int 或一个列表,并且由于类型的不同而不会执行任何基本运算符。有什么办法可以解决这个问题?不幸的是我不能使用 Numpy。

最佳答案

这是一种不同的、更短的纯 Python 矩阵乘法方法:

 import operator
import itertools

def dot(x, y):
assert len(x) == len(y)
return sum(itertools.starmap(operator.mul, itertools.izip(x, y)))

def matmult(m, v):
return [dot(row, v) for row in m]

(这是针对 python 2 的——在 python 3 中将 itertools.izip 替换为 zip。)

关于python - python中的向量矩阵乘法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10504167/

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