Python 次对角线和上对角线中的矩阵数据
Matrix data in Python Sub & Upper Diagonals
我有一个包含矩阵的文件:假设 matrix.dat 我想从中提取对角线、次对角线和上对角线,以创建一个新的三对角矩阵 M。我知道使用 numpy 可以得到对角线,但是有没有办法提取下对角线或上对角线的数据。
你可以像这样构造一个一般的三对角矩阵。
from scipy.sparse import spdiags
import numpy as np
data = np.array([[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]])
diags = np.array([0, -1, 1])
array = spdiags(data, diags, 4, 4).toarray()
array([[1, 2, 0, 0],
[1, 2, 3, 0],
[0, 2, 3, 4],
[0, 0, 3, 4]])
我有一个包含矩阵的文件:假设 matrix.dat 我想从中提取对角线、次对角线和上对角线,以创建一个新的三对角矩阵 M。我知道使用 numpy 可以得到对角线,但是有没有办法提取下对角线或上对角线的数据。
你可以像这样构造一个一般的三对角矩阵。
from scipy.sparse import spdiags
import numpy as np
data = np.array([[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]])
diags = np.array([0, -1, 1])
array = spdiags(data, diags, 4, 4).toarray()
array([[1, 2, 0, 0],
[1, 2, 3, 0],
[0, 2, 3, 4],
[0, 0, 3, 4]])