在Python NumPy中匹配不同形状的数组
我有一个很大的二维数组,里面只有0和1,还有一个小的3x3的数组。
我想找出大数组中哪些地方和小数组匹配,也就是说,找到所有的 i
和 j
,使得
big_array[i-1:i+2, j-1:j+2] == small_array
可能会有多个 (i,j)
满足这个条件。我该怎么做,才能不写两个嵌套的 i
和 j
循环呢?
1 个回答
2
我希望这段代码是你需要的:
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)