美文网首页
1、速度测试:常规python代码 VS numpy数组(含ma

1、速度测试:常规python代码 VS numpy数组(含ma

作者: 徐胥 | 来源:发表于2021-04-26 16:55 被阅读0次

    针对数值计算任务,我们一般推崇使用numpy:

    ① 因为他的底层是C语言,所以比起python内置函数,代码更高效。

    ② numpy能对数组和矩阵进行直接操作。如果是python内置函数,我们就不得不开启循环遍历。

    ③数组的存储效率和输入输出性能优于python的基本数据结构。

    下面我们用一个简单的例子展示②的效果。

    图1 常规python代码 VS numpy数组

    从图1,我们可以看到常规python代码需要使用for循环才能实现,而numpy数组可直接对数组内的所有元素进行计算。

    图2 对两种写法进行耗时比较

    这边展示的是两种方式执行时间的微秒比较。但这样的结果是否具有偶然性呢?从统计角度,我们不该一锤定音,所以我们计划分别执行这两种方法100次,并用图像的方式可视化展现出来。

    图3 准备两种方法的耗时数据集 图4 画图

    好啦,有了以上的普遍性测试,再也没有人从统计学角度质疑我们的结论了。numpy对数组内所有元素直接处理的方式,速度确实很赞!

    在处理过程中,我们发现小数据量,其实两种方式的耗时差距并不是很大,那么在当前方案下,导致时间差距变大的数据量拐点到底是什么呢?

    图5 数据量对两种方法的耗时影响

    我这边的数据量是以100为步长的共100个小实验测试耗时,从折线图中其实并不能发现明显拐点,甚至觉得常规python代码的耗时随着数据量的增长存在回归现象。但我们可以明确看到,当前的数据量,对numpy来说还是洒洒水啦。

    所以推荐使用numpy!后续我也会继续推送更多的numpy小知识给大家,可以边看边练,喜欢的话点个关注吧!

    相关文章

      网友评论

          本文标题:1、速度测试:常规python代码 VS numpy数组(含ma

          本文链接:https://www.haomeiwen.com/subject/gyjerltx.html