【发布时间】:2015-12-11 21:41:23
【问题描述】:
以下代码计算整个图片的局部对比度。而且我的版本真的很慢。我尝试使用“多处理”模块中的“池”进行多线程处理,但它只加快了 10%。
你能帮我加快速度吗?
#pic: gray value picture (large 2d-array)
#xvar,yvar: scalar values, e.g. 200
contrast=[np.std(pic[stepx-xvar:xvar+stepx:,stepy-yvar:yvar+stepy:])*2 \
for ystep in np.arange(yvar,np.int(pic.shape[1]-yvar),1)] \
for stepx in np.arange(xvar,np.int(pic.shape[0]-xvar),1)]
【问题讨论】:
-
您知道将所有内容放在一条线上实际上并不能加快速度。
-
您确定这是您正在运行的代码吗?我猜你错过了
[。如果您指定变量/数组的值/维度(例如pic)也会有所帮助,因为加速通常取决于数组形状。
标签: python performance numpy