[英]Replacing elements in numpy array
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)
Expected Result:预期结果:
[[1,0,0],[0.75,1,0],[0,0,1]]
Actual Result:实际结果:
[[1 0 0]
[0 1 0]
[0 0 1]]
this is the result I got.这是我得到的结果。 I have no idea why.
我不知道为什么。
By default dtype for np.diag
is int
默认情况下,
np.diag
是int
convert it into float
so your float values from array a
can replace older value将其转换为
float
以便数组a
浮点值可以替换旧值
L_vec = L_vec.astype(float)
Use below code使用下面的代码
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)
Output:输出:
[[1. 0. 0. ]
[0.75 1. 0. ]
[0. 0. 1. ]]
You can check datatype using print(L_vec.dtype)
您可以使用
print(L_vec.dtype)
检查数据类型
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.