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].Параметры: n : int
Размер по каждому измерению массивов, для которых могут быть использованы возвращенные индексы.
ndim : int, необязательно
Количество измерений.
См. также
Примечания
Введено в версии 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]])Теперь мы создаем индексы для обработки трехмерного массива:
>>> 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–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.14.5/reference/generated/numpy.diag_indices.html