我有一个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)
如果
chop_preds
已经是numpy
数组,则可以使用:或者,如果您真的只需要求和,请对这些选择使用^{} :
更简单,但更难阅读:
在这三种方式中,
numpy.count_nonzero
似乎是最快的:相比之下,原始实现在该图上的最后一个输入大约需要0.2秒,因此比最差的
numpy
实现长20倍(比最快的实现长100倍)。你知道吗对于多处理,可以使用可以使用pip安装的“pathos”(github page)包。你知道吗
在你的情况下,我会这样做:
相关问题 更多 >
编程相关推荐