如何更新 numpy 矩阵中的特定行?

How Can I update a particular row in numpy matrix?

我在这里尝试更新我的 numpy 矩阵的特定行,但它的行为有点奇怪

tpm1=np.array([[1,0, 0, 0, 0],[1, 0, 0, 0, 0],[1,0, 0, 0, 0],[1,0, 0, 0, 0],[1,0, 0, 0, 0]])
tpm1[1,:]=0.15*tpm1[1,:]
[[1 0 0 0 0]
 [1 0 0 0 0]
 [1 0 0 0 0]
 [1 0 0 0 0]
 [1 0 0 0 0]]

输出为

[[1 0 0 0 0]
 [0 0 0 0 0]
 [1 0 0 0 0]
 [1 0 0 0 0]
 [1 0 0 0 0]]

但我希望第二行是 [0.15,0,0,0,0]。我不确定这里发生了什么

创建数组时只需将 dtype 声明为 float:

tpm1=np.array([[1, 0, 0, 0, 0],[1, 0, 0, 0, 0],[1,0, 0, 0, 0],[1,0, 0, 0, 0],[1,0, 0, 0, 0]], dtype=float)

或者,您可以在声明数组时将其中一个值设为 1.0 或 0.0,例如:

tpm1=np.array([[1.0, 0, 0, 0, 0],[1, 0, 0, 0, 0],[1,0, 0, 0, 0],[1,0, 0, 0, 0],[1,0, 0, 0, 0]])

这会自动将数组设置为 dtype float。