【发布时间】:2014-10-28 13:19:37
【问题描述】:
我必须使用掩码输入在区域中“划分”n x m 数组。
例如,假设我有一个 20 x 20 数组。我的面具如下(5 x 5)——总是:
其中的数字代表细胞参与的区域。这个掩码不是输入,它只是一个ndarray。这个面具只是代表我应该如何在每个5 x 5 邻域切割我的20 x 20。
例如,第一个区域包含索引:
(0,0), (1,0), (1,1), (2,0), (2,1), (2,2)
对于我的20 x 20 数组的每个5 x 5neighborhood,我应该返回每个8regions 中的值。
我知道如何使用“标准代码”来做到这一点,但我想知道是否有一种 Pythonic 方法可以做到这一点,可以使用简洁的代码。
作为一个代码示例,我可以这样做:
def slice_in_regions(data, x_dim, y_dim):
for x in xrange(0, x_dim, 5):
for y in xrange(0, y_dim, 5):
neighbors = data[x:x+4, y:y+4]
region1 = [neighbors[0,0], neighbors[1,0], neighbors[1,1], neighbors[2,0], neighbors[2,1], neighbors[2,2]]
# region2, region3...
但是,这似乎不是一个好方法。此外,我希望我的数据维度是5 的倍数。
谢谢。
【问题讨论】:
-
如果没有关于程序输入和输出的更多信息,很难为您提供帮助。您能否提供一个示例:输入 + 掩码和预期输出?