Python 替换numpy数组中的元素

Python 替换numpy数组中的元素,python,python-3.x,numpy,Python,Python 3.x,Numpy,预期结果: import numpy as np a = np.array([0.75, 0.5, 0.21]) one_list = [1] * 3 L_vec = np.diag(one_list) L_vec[1,0] = a[0] print(L_vec) 实际结果: [[1,0,0],[0.75,1,0],[0,0,1]] 这就是我得到的结果。我不知道为什么 默认情况下,np.diag的数据类型为int 将其转换为float,以便数组a中的浮点值可以替换旧值 L_vec=L_ve

预期结果:

import numpy as np

a = np.array([0.75, 0.5, 0.21])
one_list = [1] * 3
L_vec = np.diag(one_list)
L_vec[1,0] = a[0]
print(L_vec)
实际结果:

[[1,0,0],[0.75,1,0],[0,0,1]]

这就是我得到的结果。我不知道为什么

默认情况下,
np.diag
的数据类型为
int

将其转换为
float
,以便数组
a
中的浮点值可以替换旧值

L_vec=L_vec.astype(float)

使用下面的代码

[[1 0 0]
 [0 1 0]
 [0 0 1]]
输出:

a = np.array([0.75, 0.5, 0.21])
one_list = [1]*3
L_vec = np.diag(one_list)
L_vec = L_vec.astype(float)

L_vec[1,0] = a[0]
print(L_vec)
您可以使用
print(L_vec.dtype)

[[1.   0.   0.  ]
 [0.75 1.   0.  ]
 [0.   0.   1.  ]]