我正在尝试学习使用numpy在各种情况下高效地解决涉及到滑动窗口的问题。以下是一个示例,展示了我感兴趣的问题类型:
我有一个大的二维矩阵,我想要对矩阵中每个元素周围的邻居进行计算。例如,我可能想要查找最大值,但要在每个索引处排除一些特殊邻居值(如(x-1,y)和(x+1,y+1)),然后将结果放入另一个不同的二维“解决方案”矩阵中。
需要注意的是,虽然convolution2d很有用,但在这种情况下不适用,因为我需要对每个像素进行特定操作,并且只想针对特定邻居(每个像素的邻居)执行此操作。
另外,最好确保不会超出边界。
最后,是否可能也使用任何状态?在所有邻居都是0的情况下,我希望分配一个新的整数ID,并在每次出现这种情况时递增它。
以下是一个示例:
我有一个大的二维矩阵,我想要对矩阵中每个元素周围的邻居进行计算。例如,我可能想要查找最大值,但要在每个索引处排除一些特殊邻居值(如(x-1,y)和(x+1,y+1)),然后将结果放入另一个不同的二维“解决方案”矩阵中。
需要注意的是,虽然convolution2d很有用,但在这种情况下不适用,因为我需要对每个像素进行特定操作,并且只想针对特定邻居(每个像素的邻居)执行此操作。
另外,最好确保不会超出边界。
最后,是否可能也使用任何状态?在所有邻居都是0的情况下,我希望分配一个新的整数ID,并在每次出现这种情况时递增它。
以下是一个示例:
Window:
0 0 1
1 0 0
0 0 0
Input:
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 9 9 0 0 9 0 0
0 0 0 0 0 0 0 0 0
Output:
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 1 1 0 0 2 0 0
0 0 0 0 0 0 0 0 0
scipy.ndimage.measurements.label
能够满足你的需求?虽然我不清楚这与滑动窗口有什么关系。 - user2379410