scipy.sparse.

spdiags#

scipy.sparse.spdiags(данные, diags, m=None, n=None, формат=None)[источник]#

Верните разреженную матрицу из диагоналей.

Предупреждение

Эта функция возвращает разреженную матрицу, а не разреженный массив. Рекомендуется использовать dia_array чтобы воспользоваться функциональностью разреженных массивов. (См. примечания ниже.)

Параметры:
данныеarray_like

Диагонали матрицы, хранящиеся построчно

diagsпоследовательность целых чисел или целое число

Диагонали для установки:

  • k = 0 главная диагональ

  • k > 0 k-я верхняя диагональ

  • k < 0 k-я нижняя диагональ

m, nint, tuple, optional

Форма результата. Если n равно None и m является заданным кортежем, форма является этим кортежем. Если опущено, матрица квадратная и её форма len(data[0]).

форматstr, optional

Формат результата. По умолчанию (format=None) возвращается подходящий формат разреженной матрицы. Этот выбор может измениться.

Возвращает:
new_matrixразреженная матрица

dia_matrix формат со значениями в data на диагоналях от diags.

Смотрите также

diags_array

более удобная форма этой функции

diags

матричная версия diags_array

dia_matrix

разреженный DIAгональный формат.

Примечания

Эту функцию можно заменить эквивалентным вызовом dia_matrix как:

dia_matrix((data, diags), shape=(m, n)).asformat(format)

Примеры

>>> import numpy as np
>>> from scipy.sparse import spdiags
>>> data = np.array([[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]])
>>> diags = np.array([0, -1, 2])
>>> spdiags(data, diags, 4, 4).toarray()
array([[1, 0, 3, 0],
       [1, 2, 0, 4],
       [0, 2, 3, 0],
       [0, 0, 3, 4]])