python的numpy.ndarray和列表数据类型之间的区别

4 投票
2 回答
6044 浏览
提问于 2025-04-16 13:11

Python中的numpy.ndarray和列表(list)这两种数据类型有什么区别呢?我对这个问题有些模糊的理解,但想要一个明确的答案,主要想知道:

  1. 它们在内存中占用的大小
  2. 访问速度和顺序
  3. 在保持长度不变的情况下,修改速度和顺序
  4. 改变长度的影响

谢谢!

2 个回答

1

我从各种链接和资源中了解了一些内容,下面是我的总结:

  1. 使用numpy数组的主要好处是占用更少的内存和更好的运行效率。

  2. NumPy的一个主要优势是它在时间上比标准的Python要快。

详细解释可以参考这个链接: https://www.python-course.eu/numpy.php

6

这里有几个不同之处:

  • 你可以往列表里添加元素,但如果想改变一个´numpy.ndarray´的大小,就得先复制一遍。
  • 列表里可以放各种类型的东西,而numpy数组里的所有元素必须是同一种类型。
  • 在实际使用中,numpy数组在处理向量运算时比列表要快。
  • 我觉得修改时间不是问题,但遍历元素的时候会比较重要。
  • numpy数组有很多和数组相关的方法,比如´argmin´、´min´、´sort´等等。

当我需要进行一些数学运算(比如求和、平均、数组乘法等)时,我更喜欢使用numpy数组;而当我需要遍历一些“项目”(比如字符串、文件等)时,我则会选择列表。

撰写回答