我正在尝试定义一个函数,该函数将返回输入单元格的3x3邻域。现在我有:需要从2d numpy数组中获取输入单元格的3x3邻域
def queen_neighbourhood(in_forest, in_row, in_col):
neighbourhood = in_forest[in_row-1:in_row+1, in_col-1:in_col+1]
return neighbourhood
(in_forest是输入数组)。
当我运行这个,它似乎只返回一个2x2矩阵,而不是一个3x3。为什么是这样?在我看来,我输入了一个行和列引用,然后切出一个正方形,它在输入行后面开始一行,并在其之前结束一行,然后对列进行相同操作。
因此,例如,给定的输入数组作为这样的:
[ 01, 02, 03, 04, 05
06, 07, 08, 09, 10
11, 12, 13, 14, 15
16, 17, 18, 19, 20
21, 22, 23, 24, 25 ]
,然后用第2行,第3栏,我想返回一个矩阵,例如:
[ 02, 03, 04
07, 08, 09
12, 13, 14 ]
似乎与['在Matlab中执行Matlab的im2col'滑动'](http://stackoverflow.com/questions/30109068/implement-matlabs-im2col-sliding-in-python)。 – Divakar