我是Python的初学者,最近了解了NumPy及其著名的ndarrays。一开始,在读了很多人称赞他们(一些参考文献here、here、here)之后,我想:
“好吧,如果NumPy的数组好得多,而且假设我真的不在乎在同一个列表/数组上有异构数据类型,那我为什么要使用Python的list呢?”你知道吗
然而,经过更深入的研究,我发现使用ndarrays也有消极的一面(一些参考文献here和here)。我已经理解了使用每种数据结构的基本优缺点,但这一切对我来说仍然非常混乱。所以,我的问题是:作为Python的初学者,我应该什么时候使用NumPy的数组,什么时候使用Python的列表?在特定情况下,我如何评估哪种选择是最好的?
有些人可能会认为这篇文章是重复的——而且确实已经有很多“ndarrays vs lists”的主题了。然而,我已经搜索了一段时间,我没有找到一个满意的答案,我的问题。有很多人在谈论数组和列表的好处,但是仍然不清楚,特别是对于像我这样的初学者,如何在它们之间进行选择。我是否应该在日常编码中使用NumPy数组,并为特殊情况保存列表?或者我应该反其道而行之?谢谢您!你知道吗
注意:因为它可能与答案相关,所以我打算将Python主要用于机器学习。你知道吗
Python列表更庞大。它们基本上是指针数组,比numpy的
ndarrays
占用更多的内存。因此,对于涉及矩阵和复杂计算的数学运算,ndarrays
是更好的选择。正因为如此,大多数数学运算已经针对numpy进行了优化,并且对于ndarrays
有更多数学上有用的函数。你知道吗不过,Python列表要灵活得多。它们可以保存异构的任意数据,附加/删除非常有效。如果您想添加和删除许多不同的对象,Python列表就是最好的选择。你知道吗
对于机器学习来说,
ndarrays
绝对是你最好的选择。Tensorflow和keras这两个最流行的机器学习库更适合numpy的内存高效数组,因为它们处理大量的同质数据。你知道吗相关问题 更多 >
编程相关推荐