如何在单位矩阵的对角元素中插入列表元素?

2024-03-29 15:16:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有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]

我的问题是如何将列表中的元素放入单位矩阵中?在

^{pr2}$

谢谢


Tags: 元素列表浮点数pr2
3条回答

您可以使用numpy

import numpy as np
x = np.eye(5)    # create a 5x5 identity matrix
L = [0.01, 0.02, 0.26, 0.03, 0.68]
x = x * L

numpy上,它非常简单:

L = [0.01, 0.02, 0.26, 0.03, 0.68]
diag_mat = numpy.diag(L)

否则,在vanilla python中,可以预先分配矩阵并相应地设置元素:

^{pr2}$

此方法可扩展到写入其他数组的对角线,即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)实际上将返回一个可写的视图,该视图可用于修改原始数组。在

相关问题 更多 >