2024-03-29 15:16:14 发布
网友
我有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]
我的问题是如何将列表中的元素放入单位矩阵中?在
谢谢
您可以使用numpy:
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中,可以预先分配矩阵并相应地设置元素:
此方法可扩展到写入其他数组的对角线,即a不必是单位矩阵:
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)实际上将返回一个可写的视图,该视图可用于修改原始数组。在
np.diagonal(a)
您可以使用
numpy
:在
numpy
上,它非常简单:否则,在vanilla python中,可以预先分配矩阵并相应地设置元素:
^{pr2}$此方法可扩展到写入其他数组的对角线,即
a
不必是单位矩阵:还要注意,在numpy版本1.10+上,
np.diagonal(a)
实际上将返回一个可写的视图,该视图可用于修改原始数组。在相关问题 更多 >
编程相关推荐