我有一个python脚本,它读取两个tiff图像并找到唯一的组合,计算观察结果并将计数保存到txt文件。
您可以找到完整的脚本in www.spatial-ecology.net
结果是:
tif1
2 2 3
0 0 3
2 3 3
tif2
2 2 3
3 3 4
1 1 1
result
2 2 2
3 3 1
0 3 2
3 4 1
2 1 1
3 1 2
脚本运行正常。 这就是它的实现方式。
逐行读取(对于范围(行)中的irows :)以便不在内存中加载完整的图像(最终可以插入一个标记选项以读取10行10行)
通过数组创建一个元组
检查元组是否已存储在dic()
我的问题是: 在这种情况下哪些技巧可以加快这个过程?
我测试过将结果保存在二维数组而不是dic()中,但它会减慢进程的速度。 我检查this link,也许python map函数可以提高速度。 是这种情况吗?
提前致谢 朱塞佩
答案 0 :(得分:2)
如果您需要一些关于性能的真实建议,您需要发布直接与您想要做的相关的代码部分。如果你不至少那样做我们能做的很少。也就是说,如果您在发现确切的低效率时遇到问题,我高度建议使用python的cProfile
模块。用法如下:
import cProfile
def foo(*args, **kwargs):
#do something
cProfile.run("foo(*args, **kwargs)")
这将打印代码的详细时间配置文件,让您知道代码的哪些步骤占用的时间最多。通常情况下,这两种方法要么被调用的次数要比调用它们要频繁得多,要么做一些愚蠢的额外处理,从而导致性能瓶颈。