Функция unravel_index
Функция unravel_index преобразует одномерные
(плоские) индексы в кортеж многомерных индексов
для массива указанной формы. Первым параметром
функция принимает плоский индекс или массив индексов,
вторым - форму массива в виде кортежа. Возвращается
кортеж массивов, соответствующих индексам по каждой
оси.
Синтаксис
np.unravel_index(indices, shape)
Пример
Преобразуем плоский индекс 5 в двумерные
индексы для массива формы 2 на 4:
import numpy as np
res = np.unravel_index(5, (2, 4))
print(res)
Результат выполнения кода:
(1, 1)
Пример
Преобразуем массив плоских индексов в двумерные
индексы для формы 3 на 3:
import numpy as np
indices = np.array([0, 4, 8])
res = np.unravel_index(indices, (3, 3))
print(res)
Результат выполнения кода:
(array([0, 1, 2]), array([0, 1, 2]))
Пример
Найдем многомерные индексы максимального элемента в двумерном массиве:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
flat_idx = np.argmax(arr)
res = np.unravel_index(flat_idx, arr.shape)
print(res)
print(arr[res])
Результат выполнения кода:
(1, 2)
6
Пример
Преобразуем плоские индексы в трехмерные
для формы 2 на 2 на 3:
import numpy as np
indices = np.array([0, 5, 7, 11])
res = np.unravel_index(indices, (2, 2, 3))
print(res)
Результат выполнения кода:
(array([0, 0, 1, 1]), array([0, 1, 0, 1]), array([0, 2, 1, 2]))
Смотрите также
-
функцию
ravel_multi_index,
которая преобразует многомерные индексы в плоские -
функцию
nonzero,
которая возвращает индексы ненулевых элементов -
функцию
where,
которая возвращает индексы элементов, удовлетворяющих условию -
функцию
indices,
которая создает массив индексов для заданной формы