Python 操作二维列表区域的较短方法

Python 操作二维列表区域的较短方法,python,arrays,list,region,Python,Arrays,List,Region,在我正在编写的图像处理应用程序中,我有一个多维列表,数据,我需要能够同时访问一系列点(比如2x2块) 目前我正在使用这个: 但它很笨重,如果我想扩展到4x4或8x8块,则分别需要16或64行代码 必须有一种更简单的python方法来操作二维列表的区域,有什么想法吗?对于实际的二维列表,请迭代您想要使用的索引: for x in xrange(low_x, low_x+2): for y in xrange(low_y, low_y+2): data[x][y] = ave

在我正在编写的图像处理应用程序中,我有一个多维列表,
数据
,我需要能够同时访问一系列点(比如2x2块)

目前我正在使用这个:

但它很笨重,如果我想扩展到4x4或8x8块,则分别需要16或64行代码


必须有一种更简单的python方法来操作二维列表的区域,有什么想法吗?

对于实际的二维列表,请迭代您想要使用的索引:

for x in xrange(low_x, low_x+2):
    for y in xrange(low_y, low_y+2):
        data[x][y] = average
对于NumPy数组,请使用切片指定:

data[x:x+2, y:y+2] = average

如果您有一个列表,
数据[x,y]
不应该工作。您使用的是numpy
ndarray
吗?谢谢,我使用的是PIL,但我没有意识到它是一个numpy数组-哦!我会尽快接受答案-2分钟后
data[x:x+2, y:y+2] = average