По умолчанию dtype для 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)