Возможно, я торможу, но я не могу найти нормальный способ поиска маленького массива в большом и получения индексов, где маленький находится в большом.
Точнее, я знаю как это сделать через for и срезы, но это долго, массив большой.
Расскажу конкретней что требуется:
Есть массив, например:
Arr = numpy.array([[1,2,3,4,5], [5,6,7,8,9], [9,0,0,0,2], [6,5,4,3,2], [3,4,2,3,2]])
Требуется найти, например:
Arr_small = numpy.array([[5,4,3], [4,2,3]])
Возможно, есть какой-нибудь способ сделать это средствами numpy?
Нашел один вариант, который по-началу показался нормальным.
Преобразовать Arr в массив “окон” типа:
numpy.array([[[1,2,3], [5,6,7]], [[2,3,4], [6,7,8]], [[3,4,5], [7,8,9]], ... [[4,3,2], [2,3,2]]])
Возможно, можно реализовать через numpy.where, но я так и не понял как.
Подскажите, пожалуйста, как можно это реализовать.