所以我一直在阅读列表理解,映射和生成器作为快速迭代的方法,但所有的例子都是从现有的数组生成一个新的数组。
在我的特殊情况下,我想要更新现有二维数组的一个区域的值。有人能帮我理解如何将这些快速迭代器应用于我的特定情况吗?
下面是有问题的代码的提炼:
buffer = [[0 for x in xrange(buffer_width)] for x in xrange(buffer_height)]
offset_x = 10
offset_y = 10
width = len(data)
height = len(data[0])
for x in range(0, width, 1):
for y in range(0, height, 1):
bx = int(offset_x + x)
by = int(offset_y + y)
buffer[bx][by] = data[x][y] | buffer[bx][by]啊!对于错误的代码格式,我很抱歉;显然,从手机上发布内容并不是一个好主意
编辑:对于错误的初始代码,很抱歉,我已经对它进行了编辑,以便更清晰。希望很明显,我正在将一个小的2D数组的值合并到一个较大的2D数组的现有值中
发布于 2015-11-15 23:07:22
python 1.纯
for x in xrange(offset_x, width):
for y in xrange(offset_y, height):
data[y][x] = buffer[y-offset_y][x-offset_x]2. numpy
data[offset_y-1:,offset_x-1:] = buffer我认为numpy在大数据集的情况下会更快。
https://stackoverflow.com/questions/33720231
复制相似问题