gpt4 book ai didi

python - numpy *= 不工作

转载 作者:行者123 更新时间:2023-11-28 21:48:21 26 4
gpt4 key购买 nike

我使用 numpy 来计算矩阵乘法。如果我使用 t = t * x,它工作得很好,但如果我使用 t *= x,它就不行。我需要使用 t = t * x 吗?

import numpy as np

if __name__ == '__main__':
x = [
[0.9, 0.075, 0.025],
[0.15, 0.8, 0.05],
[0.25, 0.25, 0.5]
]
t = [1, 0, 0]
x = np.matrix(x)
t = np.matrix(t)
t = t * x # work , [[ 0.9 0.075 0.025]]
# t *= x # not work? always [[0 0 0]]
print t

最佳答案

您用整数而不是 float 填充了 t,因此 NumPy 决定您需要一个整数数据类型的矩阵。当您执行 t *= x 时,这要求就地执行操作,重新使用 t 对象来存储结果。这会强制将结果转换为整数,因此它们可以存储在 t 中。

用 float 初始化t:

t = numpy.matrix([1.0, 0.0, 0.0])

我还建议切换到普通数组,而不是矩阵。 * 优于 dot 的便利性不值得 matrix 造成的不一致。如果您使用的是 Python 3.5 或更高版本,您甚至可以使用 @ 与常规数组进行矩阵乘法。

关于python - numpy *= 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35496704/

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