numpy.diagflat
numpy.diagflat(v, k=0)
Функция diagflat() сжимает входной массив до одной оси и строит из него диагональный массив.
-
- v - подобный массиву объект
- Двумерные или одномерные массивы, матрицы, списки или кортежи, а так же лбая функция или объект с методом, возвращаеющие список или кортеж.
- k - индекс диагонали (необязательный)
- По умолчанию k = 0, что соответствует главной диагонали. Положительное значение k смещает диагональ вверх, отрицательное - вниз.
-
- ndarray - массив NumPy
- Двумерный диагональный массив.
Примеры
>>> 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]])