Spec-Zone.ru › NumPy 1.14

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, необязательно

Количество измерений.

См. также

diag_indices_from

Примечания

Введено в версии 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API