numpy.diag_indices
-
numpy.diag_indices(n, ndim=2)[source] -
Возвращает индексы для доступа к главной диагонали массива.
Это возвращает кортеж индексов, которые можно использовать для доступа к главной диагонали массива
aсa.ndim >= 2измерениями и формой (n, n, …, n). Дляa.ndim = 2это обычная диагональ, дляa.ndim > 2это набор индексов для доступа кa[i, i, ..., i]дляi = [0..n-1].- Параметры
-
-
nint -
Размер по каждому измерению массивов, для которых можно использовать возвращенные индексы.
-
ndimint, optional -
Количество измерений.
-
См. также
Примечания
Введено в версии 1.4.0.
Примеры
Создайте набор индексов для доступа к диагонали массива (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-мерным массивом:
>>> 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]]])
© 2005–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.diag_indices.html