我为以下代码得到了非常奇怪的时间:
import numpy as np
s = 0
for i in range(10000000):
s += np.float64(1) # replace with np.float32 and built-in float
Run Code Online (Sandbox Code Playgroud)
为什么float64比两倍慢float?为什么float32比float64慢5倍?
有没有办法避免使用的惩罚np.float64,并有numpy功能返回内置float而不是float64?
我发现使用numpy.float64比Python的浮点慢得多,numpy.float32甚至更慢(即使我在32位机器上).
numpy.float32在我的32位机器上.因此,每次我使用各种numpy函数时numpy.random.uniform,我将结果转换为float32(以便以32位精度执行进一步的操作).
有没有办法在程序或命令行中的某处设置单个变量,并使所有numpy函数返回float32而不是float64?
编辑#1:
在算术计算中,numpy.float64 比浮点慢10倍.它非常糟糕,甚至在计算之前转换为浮动和返回使程序运行速度提高了3倍.为什么?我能做些什么来解决它吗?
我想强调一下,我的时间安排不是由以下任何原因引起的:
我更新了我的代码,以便更清楚地解决问题所在.使用新代码,我发现使用numpy数据类型可以看到十倍的性能:
from datetime import datetime
import numpy as np
START_TIME = …Run Code Online (Sandbox Code Playgroud)