scipy.ndimage.
find_objects#
- scipy.ndimage.find_objects(входные данные, max_label=0)[источник]#
Найти объекты в помеченном массиве.
- Параметры:
- входные данныеndarray целых чисел
Массив, содержащий объекты, определенные различными метками. Метки со значением 0 игнорируются.
- max_labelint, необязательный
Максимальная метка для поиска в входные данные. Если max_label не задан, возвращаются позиции всех объектов.
- Возвращает:
- object_slicesсписок кортежей
Список кортежей, где каждый кортеж содержит N срезов (где N — размерность входного массива). Срезы соответствуют минимальному параллелепипеду, содержащему объект. Если число отсутствует, вместо среза возвращается None. Метка
lсоответствует индексуl-1в возвращаемом списке.
Смотрите также
Примечания
Эта функция очень полезна для выделения интересующего объёма внутри трёхмерного массива, который нельзя "просмотреть насквозь".
Примеры
>>> from scipy import ndimage >>> import numpy as np >>> a = np.zeros((6,6), dtype=int) >>> a[2:4, 2:4] = 1 >>> a[4, 4] = 1 >>> a[:2, :3] = 2 >>> a[0, 5] = 3 >>> a array([[2, 2, 2, 0, 0, 3], [2, 2, 2, 0, 0, 0], [0, 0, 1, 1, 0, 0], [0, 0, 1, 1, 0, 0], [0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0]]) >>> ndimage.find_objects(a) [(slice(2, 5, None), slice(2, 5, None)), (slice(0, 2, None), slice(0, 3, None)), (slice(0, 1, None), slice(5, 6, None))] >>> ndimage.find_objects(a, max_label=2) [(slice(2, 5, None), slice(2, 5, None)), (slice(0, 2, None), slice(0, 3, None))] >>> ndimage.find_objects(a == 1, max_label=2) [(slice(2, 5, None), slice(2, 5, None)), None]
>>> loc = ndimage.find_objects(a)[0] >>> a[loc] array([[1, 1, 0], [1, 1, 0], [0, 0, 1]])