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 列表有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

python中元组和列表有啥区别

Python元组与c语言的数组有啥区别吗

Python元组与c语言的数组有啥区别吗

Python中列表和字典有啥区别,分别适用于啥

NumPy 与 Python 内置列表计算标准差的区别

numpy模块