numpy.eye

numpy.eye(N, M=None, k=0, dtype=<type 'float'>, order='C')

Функция eye() возвращает двумерный массив у которого все элементы по диагонали равны 1, а все остальные равны 0.

Параметры:
N - целое число
Задает количество строк выходного массива.
M - целое число (необязательный)
Задает количество столбцов выходного массива. Если этот параметр не задан то M = N.
k - индекс диагонали (необязательный)
По умолчанию k = 0, что соответствует главной диагонали. Положительное значение k смещает диагональ вверх, отрицательное - вниз.
dtype - тип данных NumPy (необязательный)
Определяет тип данных выходного массива.
order - 'C' или 'F' (необязательный)
Этот параметр определяет в каком порядке массивы должны храниться в памяти: строчном C-стиле или столбчатом стиле Fortran.
Возвращает:
результат - массив NumPy
Массив размером (N, M) с единицами по указанной диагонали и остальными нулевыми элементами.
Смотрите так же: identity, diag, diagflat


Примеры

>>> import numpy as np
>>> 
>>> np.eye(3)    #  Квадратный массив с 1 по главной диагонали
array([[ 1.,  0.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]])
>>> 
>>> np.eye(3, 5)    #  Прямоугольный массив с 1 по угловой диагонали
array([[ 1.,  0.,  0.,  0.,  0.],
       [ 0.,  1.,  0.,  0.,  0.],
       [ 0.,  0.,  1.,  0.,  0.]])
>>> 
>>> np.eye(3, 5, k=2)     #  Смещение диагонали вверх на две позиции
array([[ 0.,  0.,  1.,  0.,  0.],
       [ 0.,  0.,  0.,  1.,  0.],
       [ 0.,  0.,  0.,  0.,  1.]])
>>> 
>>> np.eye(5, 3, k=-2)     #  Смещение диагонали вниз на две позиции
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 1.,  0.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]])
>>> 
>>> np.eye(5, dtype = np.int8)    #  Указание типа элементов
array([[1, 0, 0, 0, 0],
       [0, 1, 0, 0, 0],
       [0, 0, 1, 0, 0],
       [0, 0, 0, 1, 0],
       [0, 0, 0, 0, 1]], dtype=int8)