我是一名Python初学者,并对这些不同形式的存储数据感到困惑?什么时候应该使用哪个。哪些适合存储矩阵(和矢量)?
答案 0 :(得分:0)
numpy
上,更适合表和数据库中的数据类型。更具体地说,您需要了解需要解决的问题类型。您使用的是哪种数据,以及您需要使用哪些数据?
lists
可以改变大小,并且可以包含多种元素。
numpy.array
的大小是固定的,包含统一类型的元素。它是多维的,并且已经实现了许多数学函数。
答案 1 :(得分:0)
以下是一般性概述(部分归功于在线文档,Mark Lutz和Wes McKinney O' Reilly书籍):
list
:Python标准中提供的常规选择对象
图书馆。列表是按位置任意排列的任意集合
键入的对象,没有固定的大小。它们也是可变的(str
例如,不是)。
numpy.ndarray
:存储相同类型的项目集合。一切
item占用相同大小的内存块(不一定是这种情况
在list
)。如何解释数组中的每个项目
由单独的数据类型对象(dtype
指定,不要混淆
与type
)。此外,与列表不同,ndarray
可能不具备
附加到位的项目(即.append
方法返回一个新的
包含附加项的数组,与list
s不同。
单个ndarray
是一个向量,同一大小ndarray
的{{1}}是一个二维数组(a.k.a矩阵),依此类推。您可以通过嵌套来制作任意n维对象。
ndarray
:包含一个类似于一维数组的对象
数据数组(任何pandas.Series
)和相关的数据数组
标签,称为其索引。它基本上是一个荣耀的dtype
,
带有标签(存储在numpy.ndarray
内作为Series
对象)
物品和一些方便的额外功能。另外,Index
可以
包含多个不同Series
s的对象(更像是dtype
)。
list
:多个pandas.DataFrame
的集合,形成一个
类似于表的对象,具有许多非常方便的数据功能
分析
答案 2 :(得分:0)
列表:列表非常灵活,可以保存完全异构的任意数据,并且可以非常有效地附加它们。
数组:另一方面,array.array类型只是C数组上的一个瘦包装器。它只能保存同类数据,所有类型相同,因此它只使用sizeof(一个对象)*长度字节的内存。
Numpy数组:但是,如果你想对同类数组数据进行数学运算,那么你最好使用NumPy,它可以自动对复杂的多维数组上的操作进行矢量化。
Pandas:Pandas提供基于NumPy构建的高级数据操作工具。 NumPy本身就是一个相当低级的工具。
Pandas提供了一堆C或Cython优化的例程,它们比numpy“等价物”(例如阅读文本)更快。对于类似点积的东西,pandas DataFrames通常比numpy数组慢
仅供参考:取自不同的网络资源