Матричные данные в Python Sub & Upper Diagonals - PullRequest
0 голосов
/ 05 июня 2018

У меня есть файл с матрицей: скажем, matrix.dat, и я хочу извлечь из него диагональ, субдиагональ и верхнюю диагональ, чтобы создать новую трехдиагональную матрицу M. Я знаю, что с помощью numpy вы можете получить диагональ,но есть ли способ извлечь данные субдиагонали или верхней диагонали.

1 Ответ

0 голосов
/ 05 июня 2018

Вы можете построить трехдиагональную матрицу в целом, как это.

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]])
...