[英]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)
預期結果:
[[1,0,0],[0.75,1,0],[0,0,1]]
實際結果:
[[1 0 0]
[0 1 0]
[0 0 1]]
這是我得到的結果。 我不知道為什么。
默認情況下, np.diag
是int
將其轉換為float
以便數組a
浮點值可以替換舊值
L_vec = L_vec.astype(float)
使用下面的代碼
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)
輸出:
[[1. 0. 0. ]
[0.75 1. 0. ]
[0. 0. 1. ]]
您可以使用print(L_vec.dtype)
檢查數據類型
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.