我有5x5单位矩阵和浮点数列表
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1 L=[0.01, 0.02, 0.26, 0.03, 0.68]
Run Code Online (Sandbox Code Playgroud)
我的问题是如何将列表元素放入单位矩阵?
0.01 0 0 0 0
0 0.02 0 0 0
0 0 0.26 0 0
0 0 0 0.03 0
0 0 0 0 0.68
Run Code Online (Sandbox Code Playgroud)
谢谢
此方法可扩展为写入其他数组的对角线,即a不必是单位矩阵:
>>> a = np.eye(5)
>>> L = [0.01, 0.02, 0.26, 0.03, 0.68]
>>> d = np.diag_indices_from(a)
>>> a[d] = L
>>> print(a)
[[ 0.01 0. 0. 0. 0. ]
[ 0. 0.02 0. 0. 0. ]
[ 0. 0. 0.26 0. 0. ]
[ 0. 0. 0. 0.03 0. ]
[ 0. 0. 0. 0. 0.68]]
Run Code Online (Sandbox Code Playgroud)
另请注意,在numpy版本1.10+上,np.diagonal(a)实际上将返回可用于修改原始数组的可写视图.