首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提高Python迭代性能

提高Python迭代性能
EN

Stack Overflow用户
提问于 2015-11-15 21:29:40
回答 1查看 95关注 0票数 2

所以我一直在阅读列表理解,映射和生成器作为快速迭代的方法,但所有的例子都是从现有的数组生成一个新的数组。

在我的特殊情况下,我想要更新现有二维数组的一个区域的值。有人能帮我理解如何将这些快速迭代器应用于我的特定情况吗?

下面是有问题的代码的提炼:

代码语言:javascript
复制
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数组的现有值中

EN

回答 1

Stack Overflow用户

发布于 2015-11-15 23:07:22

python 1.纯

代码语言:javascript
复制
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

代码语言:javascript
复制
data[offset_y-1:,offset_x-1:] = buffer

我认为numpy在大数据集的情况下会更快。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33720231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档