Python numpy*=不工作

Python numpy*=不工作,python,numpy,Python,Numpy,我用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

我用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

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

用浮点数初始化
t

t = numpy.matrix([1.0, 0.0, 0.0])
我还建议切换到普通数组,而不是矩阵。
*
更方便,不值得因为矩阵不一致而产生。如果您使用的是Python3.5或更高版本,您甚至可以使用
@
与正则数组进行矩阵乘法