numpy.diag_indices#
- numpy.diag_indices(n, ndim=2)[источник]#
Возвращает индексы для доступа к главной диагонали массива.
Возвращает кортеж индексов, который можно использовать для доступа к главной диагонали массива a с
a.ndim >= 2измерения и форма (n, n, …, n). Дляa.ndim = 2это обычная диагональ, дляa.ndim > 2это набор индексов для доступаa[i, i, ..., i]дляi = [0..n-1].- Параметры:
- nint
Размер, вдоль каждого измерения, массивов, для которых возвращенные индексы могут быть использованы.
- ndimint, необязательный
Количество измерений.
Смотрите также
Примеры
>>> import numpy as np
Создать набор индексов для доступа к диагонали массива (4, 4):
>>> di = np.diag_indices(4) >>> di (array([0, 1, 2, 3]), array([0, 1, 2, 3])) >>> a = np.arange(16).reshape(4, 4) >>> a array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15]]) >>> a[di] = 100 >>> a array([[100, 1, 2, 3], [ 4, 100, 6, 7], [ 8, 9, 100, 11], [ 12, 13, 14, 100]])
Теперь создадим индексы для манипуляции 3-D массивом:
>>> d3 = np.diag_indices(2, 3) >>> d3 (array([0, 1]), array([0, 1]), array([0, 1]))
И использовать его для установки диагонали массива нулей в 1:
>>> a = np.zeros((2, 2, 2), dtype=int) >>> a[d3] = 1 >>> a array([[[1, 0], [0, 0]], [[0, 0], [0, 1]]])