NumPy 数组和 python 列表有啥区别? [复制]
Posted
技术标签:
【中文标题】NumPy 数组和 python 列表有啥区别? [复制]【英文标题】:What is the difference between a NumPy array and a python list? [duplicate]NumPy 数组和 python 列表有什么区别? [复制] 【发布时间】:2016-06-19 22:39:58 【问题描述】:为什么我们在 python 中使用 numpy 数组代替列表?它们之间的主要区别是什么?
【问题讨论】:
数组是什么意思?你的意思是arrays 还是你想说list
([1, 2, 3]
是一个列表,而不是一个数组)?
如果您实际上是指数组,请澄清。
【参考方案1】:
Numpy 数组是一个类型化数组,该数组在内存中存储的是同质的、密集的数字。
Python 列表是一个异构列表,内存中的列表存储的是对对象的引用,而不是数字本身。
这意味着每次代码需要访问数字时,Python 列表都需要取消引用指针。虽然 numpy 数组可以直接通过 numpy 向量操作进行处理,这使得这些向量操作比您可以使用列表编写的任何代码都快得多。
numpy 数组的缺点是,如果你需要访问数组中的单个项目,numpy 需要将数字装箱/拆箱成 python 数字对象,这在某些情况下会使其变慢;并且它不能保存异构数据。
【讨论】:
list 是这样,但标准库中也存在 array 是这样。 所以@jonrsharpe 你是说普通的python 数组和Numpy 数组本质上是相等的吗?请多描述一下您的评论。谢谢 @MuhammadMuzammil 我是说list 与array 不同;我不清楚 "simple python array". 所指的 OP以上是关于NumPy 数组和 python 列表有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章