小编Sha*_*awn的帖子

为什么使用 float32 的 numpy 运算明显快于 float64?

进行一些优化后,我注意到从 float64 切换到 float32 可以通过一些 numpy 操作大大提高运行时间。在下面的示例中为 5 倍。我知道数据类型只是处理方式不同并且具有硬件依赖性等(请参阅此处此处的问题)。但为什么我会看到以下内容,我能做些什么来使 64 位速度更快吗?

import numpy as np
import timeit


arr64 = np.random.random(size=10000).astype(np.float64)
arr32 = np.random.random(size=10000).astype(np.float32)

time64 = timeit.timeit(lambda :np.exp(arr64), number=10000)
time32 = timeit.timeit(lambda :np.exp(arr32), number=10000)

print(f'64bit time: {time64}')
print(f'32bit time: {time32}')

64bit time: 0.797928056679666
32bit time: 0.15939769614487886

Run Code Online (Sandbox Code Playgroud)

注意我在 Ubuntu 上使用 python 3.9.17 和 numpy 1.25.2

python numpy

2
推荐指数
1
解决办法
437
查看次数

标签 统计

numpy ×1

python ×1