【发布时间】:2018-02-15 16:00:41
【问题描述】:
我有一个 numpy 数组 chop_preds,它非常大(约 1000 万个元素),需要对其进行修改,使其包含 1.0、0.5 或 0 的值(见下文)。
如何并行执行这种重新分配?
chop_preds=chop_preds.flatten()
for k in range(len(chop_preds)):
if(chop_preds[k]>=0.4):
chop_preds[k]=1.0
elif(chop_preds[k]<0.1):
chop_preds[k]=0
else:
chop_preds[k]=0.5
my_sum=np.sum(chop_preds)
【问题讨论】:
-
对于它的价值,在我的 macbook 上,读取并为 10M 元素数组的每个元素分配一个整数在 1.2 秒内连续运行。根据您的用例,可能没有理由打扰。
-
很遗憾,这只是较大代码中的一小部分,对于许多不同的
chop_preds,这部分需要重复。这个 sn-p,一旦重复,需要 8 分钟中的 7 分钟才能运行我的程序,我还没有扩大它。
标签: python numpy parallel-processing multiprocessing python-multiprocessing