NumPy';s ndarrays vs Python';s列表
我是Python的初学者,最近学习了NumPy及其著名的Ndarray。起初,在阅读了许多人对他们的赞扬(一些参考资料)后,我想: “好吧,如果NumPy的数组好得多,并且假设我真的不在乎在同一个列表/数组上有异构数据类型,为什么我要使用Python的列表?” 然而,在深入研究之后,我发现使用Ndarray也有消极的一面(一些引用和)。我已经了解了使用每种数据结构的基本优缺点,但这一切对我来说仍然很困惑。所以,我的问题是:作为Python的初学者,我应该什么时候使用NumPy的数组,什么时候使用Python的列表?在特定情况下,我如何评估哪个选项是最好的? 有些人可能倾向于把这篇文章看成是重复的,实际上已经有很多“NDAREL VS列表”的主题了。然而,我已经搜索了一段时间,我没有找到一个满意的答案为我的问题。有很多人在谈论Ndarray和List的好处,但仍然不清楚,特别是对于像我这样的初学者,如何在它们之间进行选择。我是否应该在日常编码中使用NumPy数组,并为特殊情况保存列表?或者我应该做相反的事情?谢谢大家!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主要用于机器学习。Python列表更为庞大。它们基本上是指针数组,比numpy的
ndarrays
占用的内存多得多。因此,对于涉及矩阵和复杂计算的数学运算,ndarray
是更好的选择。因此,大多数数学运算都针对numpy进行了优化,并且对于ndarrays
有更多数学上有用的函数
不过,Python列表要灵活得多。它们可以保存异构的任意数据,并且附加/删除非常有效。如果您想添加和删除许多不同的对象,Python列表是一个不错的选择
就机器学习而言,
ndarrays
绝对是您的最佳选择。Tensorflow和keras是两个最流行的机器学习库,它们更适合numpy的内存高效数组,因为它们处理大量同质数据。列表是基本的python结构,可用于许多角色numpy
主要是一种数值工具-矩阵、高维数组。通过pandas
扩展到时间序列,通过sklearn
和tensorflow/keras
扩展到机器学习,