NumPy的ndarrays与Python的列表

2024-05-16 00:21:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python的初学者,最近了解了NumPy及其著名的ndarrays。一开始,在读了很多人称赞他们(一些参考文献hereherehere)之后,我想:

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

然而,经过更深入的研究,我发现使用ndarrays也有消极的一面(一些参考文献herehere)。我已经理解了使用每种数据结构的基本优缺点,但这一切对我来说仍然非常混乱。所以,我的问题是:作为Python的初学者,我应该什么时候使用NumPy的数组,什么时候使用Python的列表?在特定情况下,我如何评估哪种选择是最好的?

有些人可能会认为这篇文章是重复的——而且确实已经有很多“ndarrays vs lists”的主题了。然而,我已经搜索了一段时间,我没有找到一个满意的答案,我的问题。有很多人在谈论数组和列表的好处,但是仍然不清楚,特别是对于像我这样的初学者,如何在它们之间进行选择。我是否应该在日常编码中使用NumPy数组,并为特殊情况保存列表?或者我应该反其道而行之?谢谢您!你知道吗

注意:因为它可能与答案相关,所以我打算将Python主要用于机器学习。你知道吗


Tags: 答案numpy数据结构列表here情况数组参考文献
1条回答
网友
1楼 · 发布于 2024-05-16 00:21:50

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

不过,Python列表要灵活得多。它们可以保存异构的任意数据,附加/删除非常有效。如果您想添加和删除许多不同的对象,Python列表就是最好的选择。你知道吗

对于机器学习来说,ndarrays绝对是你最好的选择。Tensorflow和keras这两个最流行的机器学习库更适合numpy的内存高效数组,因为它们处理大量的同质数据。你知道吗

相关问题 更多 >