python的numpy.ndarray和列表数据类型之间的区别
Python中的numpy.ndarray和列表(list)这两种数据类型有什么区别呢?我对这个问题有些模糊的理解,但想要一个明确的答案,主要想知道:
- 它们在内存中占用的大小
- 访问速度和顺序
- 在保持长度不变的情况下,修改速度和顺序
- 改变长度的影响
谢谢!
2 个回答
1
我从各种链接和资源中了解了一些内容,下面是我的总结:
使用numpy数组的主要好处是占用更少的内存和更好的运行效率。
NumPy的一个主要优势是它在时间上比标准的Python要快。
详细解释可以参考这个链接: https://www.python-course.eu/numpy.php
6
这里有几个不同之处:
- 你可以往列表里添加元素,但如果想改变一个´numpy.ndarray´的大小,就得先复制一遍。
- 列表里可以放各种类型的东西,而numpy数组里的所有元素必须是同一种类型。
- 在实际使用中,numpy数组在处理向量运算时比列表要快。
- 我觉得修改时间不是问题,但遍历元素的时候会比较重要。
- numpy数组有很多和数组相关的方法,比如´argmin´、´min´、´sort´等等。
当我需要进行一些数学运算(比如求和、平均、数组乘法等)时,我更喜欢使用numpy数组;而当我需要遍历一些“项目”(比如字符串、文件等)时,我则会选择列表。