为什么NumPy数组这么快?

发布于 2021-01-29 15:04:15

当我遇到性能问题时,我只是更改了一个正在编写的程序,以将数据存储为numpy数组,而两者之间的区别令人难以置信。最初耗时30分钟,而现在耗时2.5秒!

我想知道它是如何做到的。我认为这是因为它消除了对for循环的需要,但除此之外,我感到很困惑。

关注者
0
被浏览
104
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    块状阵列是均质类型的密集堆积阵列。相比之下,Python列表是指向对象的指针数组,即使它们都属于同一类型。因此,您可以获得引用局部性的好处。

    同样,许多Numpy操作都用C实现,从而避免了Python中循环,指针间接寻址和逐元素动态类型检查的一般开销。速度的提高取决于您执行的操作,但是在数字运算程序中,几个数量级的情况并不少见。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看