针对数值计算任务,我们一般推崇使用numpy:
① 因为他的底层是C语言,所以比起python内置函数,代码更高效。
② numpy能对数组和矩阵进行直接操作。如果是python内置函数,我们就不得不开启循环遍历。
③数组的存储效率和输入输出性能优于python的基本数据结构。
下面我们用一个简单的例子展示②的效果。
从图1,我们可以看到常规python代码需要使用for循环才能实现,而numpy数组可直接对数组内的所有元素进行计算。
这边展示的是两种方式执行时间的微秒比较。但这样的结果是否具有偶然性呢?从统计角度,我们不该一锤定音,所以我们计划分别执行这两种方法100次,并用图像的方式可视化展现出来。
好啦,有了以上的普遍性测试,再也没有人从统计学角度质疑我们的结论了。numpy对数组内所有元素直接处理的方式,速度确实很赞!
在处理过程中,我们发现小数据量,其实两种方式的耗时差距并不是很大,那么在当前方案下,导致时间差距变大的数据量拐点到底是什么呢?
我这边的数据量是以100为步长的共100个小实验测试耗时,从折线图中其实并不能发现明显拐点,甚至觉得常规python代码的耗时随着数据量的增长存在回归现象。但我们可以明确看到,当前的数据量,对numpy来说还是洒洒水啦。
所以推荐使用numpy!后续我也会继续推送更多的numpy小知识给大家,可以边看边练,喜欢的话点个关注吧!