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. ]]