python numpy中不同形状的匹配数组

python numpy中不同形状的匹配数组,python,arrays,numpy,shape,matching,Python,Arrays,Numpy,Shape,Matching,我有一个大的2d位数组(仅0和1)和一个小数组(3x3) 我想看看大数组和小数组在哪里匹配,例如,I,j big_array[i-1:i+2, j-1:j+2] == small_array 可能有多个(i,j)满足该条件。如何在不编写双重嵌套的I,j循环的情况下执行此操作?我希望,此代码就是您需要的: import numpy as np big_array = np.array(...) small_array = np.array(...) for (i, j), _ in np.n

我有一个大的2d位数组(仅0和1)和一个小数组(3x3)

我想看看大数组和小数组在哪里匹配,例如,
I
j

big_array[i-1:i+2, j-1:j+2] == small_array

可能有多个
(i,j)
满足该条件。如何在不编写双重嵌套的
I
j
循环的情况下执行此操作?

我希望,此代码就是您需要的:

import numpy as np

big_array = np.array(...)
small_array = np.array(...)

for (i, j), _ in np.ndenumerate(big_array[:-2, :-2]):
    if (big_array[i:i+3, j:j+3] == small_array).all():
        print (i, j)

我根据我的情况修改了这个答案。步伐很快。