我有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]
我的问题是如何将列表元素放入单位矩阵?
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
谢谢
此方法可扩展为写入其他数组的对角线,即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]]
另请注意,在numpy版本1.10+上,np.diagonal(a)
实际上将返回可用于修改原始数组的可写视图.