Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NumPy';s ndarrays vs Python';s列表_Python_Arrays_List_Numpy_Numpy Ndarray - Fatal编程技术网

NumPy';s ndarrays vs Python';s列表

NumPy';s ndarrays vs Python';s列表,python,arrays,list,numpy,numpy-ndarray,Python,Arrays,List,Numpy,Numpy Ndarray,我是Python的初学者,最近学习了NumPy及其著名的Ndarray。起初,在阅读了许多人对他们的赞扬(一些参考资料)后,我想: “好吧,如果NumPy的数组好得多,并且假设我真的不在乎在同一个列表/数组上有异构数据类型,为什么我要使用Python的列表?” 然而,在深入研究之后,我发现使用Ndarray也有消极的一面(一些引用和)。我已经了解了使用每种数据结构的基本优缺点,但这一切对我来说仍然很困惑。所以,我的问题是:作为Python的初学者,我应该什么时候使用NumPy的数组,什么时候使用

我是Python的初学者,最近学习了NumPy及其著名的Ndarray。起初,在阅读了许多人对他们的赞扬(一些参考资料)后,我想:

“好吧,如果NumPy的数组好得多,并且假设我真的不在乎在同一个列表/数组上有异构数据类型,为什么我要使用Python的列表?”

然而,在深入研究之后,我发现使用Ndarray也有消极的一面(一些引用和)。我已经了解了使用每种数据结构的基本优缺点,但这一切对我来说仍然很困惑。所以,我的问题是:作为Python的初学者,我应该什么时候使用NumPy的数组,什么时候使用Python的列表?在特定情况下,我如何评估哪个选项是最好的?

有些人可能倾向于把这篇文章看成是重复的,实际上已经有很多“NDAREL VS列表”的主题了。然而,我已经搜索了一段时间,我没有找到一个满意的答案为我的问题。有很多人在谈论Ndarray和List的好处,但仍然不清楚,特别是对于像我这样的初学者,如何在它们之间进行选择。我是否应该在日常编码中使用NumPy数组,并为特殊情况保存列表?或者我应该做相反的事情?谢谢大家!


注意:由于它可能与答案相关,我打算将Python主要用于机器学习。

Python列表更为庞大。它们基本上是指针数组,比numpy的
ndarrays
占用的内存多得多。因此,对于涉及矩阵和复杂计算的数学运算,
ndarray
是更好的选择。因此,大多数数学运算都针对numpy进行了优化,并且对于
ndarrays
有更多数学上有用的函数

不过,Python列表要灵活得多。它们可以保存异构的任意数据,并且附加/删除非常有效。如果您想添加和删除许多不同的对象,Python列表是一个不错的选择


就机器学习而言,
ndarrays
绝对是您的最佳选择。Tensorflow和keras是两个最流行的机器学习库,它们更适合numpy的内存高效数组,因为它们处理大量同质数据。

列表是基本的python结构,可用于许多角色
numpy
主要是一种数值工具-矩阵、高维数组。通过
pandas
扩展到时间序列,通过
sklearn
tensorflow/keras
扩展到机器学习,