gpt4 book ai didi

python - NumPy 的 ndarrays 与 Python 的列表

转载 作者:太空宇宙 更新时间:2023-11-03 23:59:08 24 4
gpt4 key购买 nike

我是 Python 的初学者,最近学习了 NumPy 及其著名的 ndarrays。一开始看到很多人都称赞他们(有的引用了hereherehere),我想:

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

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

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

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

最佳答案

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

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

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

关于python - NumPy 的 ndarrays 与 Python 的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56301791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com