在Python NumPy中匹配不同形状的数组

0 投票
1 回答
703 浏览
提问于 2025-04-28 09:09

我有一个很大的二维数组,里面只有0和1,还有一个小的3x3的数组。

我想找出大数组中哪些地方和小数组匹配,也就是说,找到所有的 ij,使得

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

可能会有多个 (i,j) 满足这个条件。我该怎么做,才能不写两个嵌套的 ij 循环呢?

暂无标签

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)

撰写回答