小编jti*_*107的帖子

我可以矢量化这个Python代码吗?

我是Python的新手,我必须实现此代码的"尽快"版本.

s="<%dH" % (int(width*height),)
z=struct.unpack(s, contents)

heights = np.zeros((height,width))
for r in range(0,height):
    for c in range(0,width):
        elevation=z[((width)*r)+c]
        if (elevation==65535 or elevation<0 or elevation>20000):
            elevation=0.0

        heights[r][c]=float(elevation)
Run Code Online (Sandbox Code Playgroud)

我已经阅读了一些python矢量化问题......但我不认为它适用于我的情况.大多数问题都是使用np.sum而不是使用for loops.我想我有两个问题:

  1. 是否有可能加快这个代码...我认为heights[r][c]=float(elevation)是瓶颈所在.我需要找一些Python计时命令来确认这一点.
  2. 如果可以加速这段代码.我有什么选择?我见过一些人建议cython,pypy,weave.我可以在C中更快地完成这个,但是这段代码也需要生成图,所以我想坚持使用Python,这样我就可以使用了matplotlib.

python numpy vectorization

2
推荐指数
1
解决办法
88
查看次数

标签 统计

numpy ×1

python ×1

vectorization ×1