Numpy 和 Python List 的差别

Numpy 和 Python List 的差别

作者: 莫烦 编辑: 莫烦 发布于: 2021-09-11

其实提到 Numpy,我建议你多做一些和 Python 原生 List 的对比, 因为它们从结构和形式上来说,是十分类似的。而且从一个你熟悉的 List 来类比学习 Numpy 也是一件简单的事情。

在这一节内容中,我们主要涉及到的功能有:

Numpy Array

在 Numpy 中,我们会一直使用到它的一种 Array 数据。这个 Array 的格式和形态多种多样,我们会在后续的教程中更详细的介绍。 现在,你只需要懂得如何 import numpy,并像下面这样定义一个 array 就好了。

List 和 Numpy array 共同点

了解 Python 原生 List 的朋友一定都知道,当你想要存储一些数据的时候, 你很可能想要用一个 list 来存储,并且可以按顺序提取出来。比如下面这样

存储和提取就是 List 的最基本用法和功能。而 Numpy Array 也能做这件事。

甚至对内部的一个值进行修改也是同样的逻辑。

所以这咋一看起来,Numpy Array 好像也没什么特别的呀,为什么这么多人都爱 Numpy 呢?

Numpy 的优势

Numpy的核心优势:运算快。用专业的语言描述的话,Numpy 喜欢用电脑内存中连续的一块物理地址存储数据,因为都是连号的嘛,找到前后的号,不用跑很远, 非常迅速。而 PythonList 并不是连续存储的,它的数据是分散在不同的物理空间,在批量计算的时候,连号的肯定比不连号的算起来更快。因为找他们的时间更少了。

numpy array and list

而且 Numpy Array 存储的数据格式也有限制,尽量都是同一种数据格式,这样也有利于批量的数据计算。 所以只要是处理大规模数据的批量计算,Numpy 肯定会比 Python 的原生 List 要快。

上面的例子,如果你会 map 的话,即使我用 map 来代替 Python 的原生循环赋值。Numpy 还是要快一些

总结

Numpy Array 和 Python List 在很多使用场景上是可以互换的,不过在大数据处理的场景下,而且你的数据类型又高度统一, 那么 Numpy 绝对是你不二的人选,能提升的运算速度也是杠杠的~


降低知识传递的门槛

莫烦经常从互联网上学习知识,开源分享的人是我学习的榜样。 他们的行为也改变了我对教育的态度: 降低知识传递的门槛免费 奉献我的所学正是受这种态度的影响。 【支持莫烦】 能让我感到认同,我也更有理由坚持下去。

我组建了微信群,欢迎大家加入,交流经验,提出问题,互相帮持。 扫码后,请一定备注"莫烦",否则我不会同意你的入群申请。

wechat