numpy.diagflat

numpy.diagflat(v, k=0)

Функция numpy.diagflat() сжимает входной массив до одной оси и строит из него диагональный массив.

Параметры:
v - подобный массиву объект
Двумерные или одномерные массивы, матрицы, списки или кортежи, а так же лбая функция или объект с методом, возвращаеющие список или кортеж.
k - индекс диагонали (необязательный)
По умолчанию k = 0, что соответствует главной диагонали. Положительное значение k смещает диагональ вверх, отрицательное - вниз.
Возвращает:
ndarray - массив NumPy
Двумерный диагональный массив.
Смотрите так же: eye, diag, tri, tril, triu

Примеры

>>> import numpy as np
>>> 
>>> a = np.array([1, 2, 3])
>>> 
>>> np.diagflat(a)
array([[1, 0, 0],
       [0, 2, 0],
       [0, 0, 3]])
>>> 
>>> np.diagflat(a, k=1)
array([[0, 1, 0, 0],
       [0, 0, 2, 0],
       [0, 0, 0, 3],
       [0, 0, 0, 0]])
>>> 
>>> np.diagflat(a, k=-1)
array([[0, 0, 0, 0],
       [1, 0, 0, 0],
       [0, 2, 0, 0],
       [0, 0, 3, 0]])
>>> 
>>> b = np.array([[1, 3], [2, 4]])
>>> b
array([[1, 3],
       [2, 4]])
>>> 
>>> np.diagflat(b)
array([[1, 0, 0, 0],
       [0, 3, 0, 0],
       [0, 0, 2, 0],
       [0, 0, 0, 4]])
>>> 
>>> np.diagflat(b, k=1)
array([[0, 1, 0, 0, 0],
       [0, 0, 3, 0, 0],
       [0, 0, 0, 2, 0],
       [0, 0, 0, 0, 4],
       [0, 0, 0, 0, 0]])
>>> 
>>> c = np.array([[1], [3], [4], [5]])
>>> c
array([[1],
       [3],
       [4],
       [5]])
>>> 
>>> np.diagflat(c)
array([[1, 0, 0, 0],
       [0, 3, 0, 0],
       [0, 0, 4, 0],
       [0, 0, 0, 5]])