Phi*_*ann 2 python floating-point sympy
我在 Windows 8.1 (x64) 上使用 sympy 0.7.5(通过 pip 安装)和 Python 3.4.2。请考虑这个简短的程序:
import sympy
import time
start = time.time()
for i in range(100):
sympy.Point(12345.0, 54321.0)
print('Elapsed (ms):', (time.time() - start) * 1000)
Run Code Online (Sandbox Code Playgroud)
我的机器大约需要22 秒才能执行此操作。我在这里缺少什么?
sympy.Point当从浮点数生成s 时,它们会自动转换为有理数。这可能是一件好事(例如,如果您想避免浮点精度损失),但也可能非常(非常)慢。要禁用到Rationals pass的转换evaluate=False,例如
%timeit sympy.Point(12345., 54321.)
10 loops, best of 3: 31.8 ms per loop
%timeit sympy.Point(12345., 54321., evaluate = False)
10000 loops, best of 3: 22.3 us per loop
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1264 次 |
| 最近记录: |