数组与列表运算速度的比较
- 导入包
import numpy as np
- 创建一个100w维的数组
my_arr = np.arange(1000000)
- 创建一个100w维的列表
my_list = list(range(1000000))
- 将my_arr里的每一个数乘以2,用%%timei -n 50 计时
%%timeit -n 50
my_arr2 = my_arr * 2
- 结果为:
– 2.46 ms ± 124 µs per loop (mean ± std. dev. of 7 runs, 50 loops each)
- 将my_list里的每一个数乘以2,用%%timei -n 50 计时
%%timeit -n 50
my_list2 = [x * 2 for x in my_list]
- 结果为:
110 ms ± 1.81 ms per loop (mean ± std. dev. of 7 runs, 50 loops each)
- 计算两次计算的时间之比
110/2.46
- 结果为:
44.71544715447155
- 由上述过程可得到数组运算速度约为列表运算速度的45倍。