[英]numpy *= not working
我使用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
您用整数而不是浮点数填充了t
,因此NumPy决定要使用整数dtype的矩阵。 当您执行t *= x
,这要求就地执行该操作,从而重用t
对象存储结果。 这将结果强制转换为整数,因此可以将它们存储在t
。
用浮点数初始化t
:
t = numpy.matrix([1.0, 0.0, 0.0])
我还建议切换到普通数组,而不是矩阵。 *
在dot
上使用*
的便利性不值得不一致matrix
引起的情况。 如果您使用的是Python 3.5或更高版本,则甚至可以使用@
与常规数组进行矩阵乘法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.