numpy.linalg.diagonal#

linalg.диагональ(x, /, *, смещение=0)[источник]#

Возвращает указанные диагонали матрицы (или стека матриц) x.

Эта функция совместима с Array API, в отличие от numpy.diagonal, предполагается, что матрица определена последними двумя измерениями.

Параметры:
x(…,M,N) array_like

Входной массив с формой (…, M, N), чьи два внутренних измерения образуют матрицы MxN.

смещениеint, необязательный

Смещение, указывающее на побочную диагональ относительно главной диагонали, где:

* offset = 0: the main diagonal.
* offset > 0: off-diagonal above the main diagonal.
* offset < 0: off-diagonal below the main diagonal.
Возвращает:
выход(…,min(N,M)) ndarray

Массив, содержащий диагонали, чья форма определяется путем удаления последних двух измерений и добавления измерения, равного размеру результирующих диагоналей. Возвращаемый массив должен иметь тот же тип данных, что и x.

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

numpy.diagonal

Примеры

>>> a = np.arange(4).reshape(2, 2); a
array([[0, 1],
       [2, 3]])
>>> np.linalg.diagonal(a)
array([0, 3])

Пример в 3-D:

>>> a = np.arange(8).reshape(2, 2, 2); a
array([[[0, 1],
        [2, 3]],
       [[4, 5],
        [6, 7]]])
>>> np.linalg.diagonal(a)
array([[0, 3],
       [4, 7]])

Диагонали, смежные с главной диагональю, могут быть получены с помощью смещение аргумент:

>>> a = np.arange(9).reshape(3, 3)
>>> a
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
>>> np.linalg.diagonal(a, offset=1)  # First superdiagonal
array([1, 5])
>>> np.linalg.diagonal(a, offset=2)  # Second superdiagonal
array([2])
>>> np.linalg.diagonal(a, offset=-1)  # First subdiagonal
array([3, 7])
>>> np.linalg.diagonal(a, offset=-2)  # Second subdiagonal
array([6])

Антидиагональ может быть получена обратным порядком элементов с использованием либо numpy.flipud или numpy.fliplr.

>>> a = np.arange(9).reshape(3, 3)
>>> a
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
>>> np.linalg.diagonal(np.fliplr(a))  # Horizontal flip
array([2, 4, 6])
>>> np.linalg.diagonal(np.flipud(a))  # Vertical flip
array([6, 4, 2])

Обратите внимание, что порядок, в котором извлекается диагональ, варьируется в зависимости от функции переворота.