简体   繁体   English

替换numpy数组中的元素

[英]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.diagint

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM