pandas和numpy有什么关系?


NumPy中的ndarray用于处理多维数值型数组 。重点在于进行数值运算 。无索引
*Pandas中的Series类似于DataFrame的子集 。DataFrame中的每一列都可以看作是一个Series 。有索引 。方便进行数据的查询 。筛选 。所以Pandas重点在于进行数据分析
在数学与统计方法上 。NumPy中的ndarray只能进行数值型统计 。而Pandas中的DataFrame既可以进行数值型 。也可以进行非数值型统计 。基于可以容纳不同的数据类型而定
1.NumPy
数值型 。重点在于进行矩阵运算
N维数组容器 。Numpy是以矩阵为基础的数学计算模块 。
Numpy专门针对ndarray的操作和运算进行了设计 。所以数组的存储效率和输入输出性能远优于Python中的嵌套列表 。数组越大 。Numpy的优势就越明显 。Numpy系统是Python的一种开源的数值计算扩展 。这种工具可用来存储和处理大型矩阵 。比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)) 。
【pandas和numpy有什么关系?】ndarray
所有元素的类型相同 。存储元素时内存可以连续;Python里list中的元素类型任意 。只能通过寻址方式找到下一个元素
ndarray矩阵结构与matlab或者C++或者fortran都很不一样 。没有行优先或者列优先的概念
ndarray支持并行化运算(向量化运算),类似于Matlab
Numpy底层使用C语言编写 。内部解除了GIL(全局解释器锁) 。其对数组的操作速度不受Python解释器的限制 。效率远高于纯Python代码
2.Pandas
多数据类型 。重点在于进行数据分析
pansdas是基于Numpy的一种工具,该工具是为了解决数据分析任务而创建的 。Pandas 纳入了大量库和一些标准的数据模型 。提供了高效地操作大型数据集所需的工具 。pandas提供了大量快速便捷地处理数据的函数和方法 。使Python成为强大而高效的数据分析环境的重要因素之一 。
1
Series
参看书:Series是一种类似于一维数组的对象 。它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成 。**小规模数据**
1
类似于一维数组 。索引对象的数据类型是一致的
有了索引标签 。方便实际问题中进行信息提取与筛选
python字典类型的数据可以直接给Series对象
Series可以运用ndarray或字典的几乎所有索引操作和函数 。融合了字典和ndarray的优点 。
属性说明
values获取数组
index获取索引
namevalues的name
index.name索引的name
DataFrame
DataFrame就是按照column和index组织起来的数据集合 。类似于excel表格 。也类似于基本的database结构 。DataFrame是一个表格型的数据结构 。它含有一组有序的列 。每列可以是不同的值类型(数值、字符串、布尔值等) 。DataFrame既有行索引也有列索引 。它可以被看做由Series组成的字典(共用同一个索引) 。
1
DataFrame范例
yearstatepopdebt
one2000Ohio1.516.5
two2001Ohio1.716.5
three2002Ohio3.616.5
four2001Nevada2.416.5
five2002Nevada2.916.5
six2003Nevada3.216.5
Series类似于DataFrame的子集 。从上表可以看出 。每一列都对应这一个Series
其他观点:
一、区别
Numpy:是数值计算的扩展包 。它能高效处理N维数组,复杂函数,线性代数.
Panadas:是做数据处理 。市python的一个数据分析包,
二、简介
1)NumPy:N维数组容器
Numpy专门针对ndarray的操作和运算进行了设计 。所以数组的存储效率和输入输出性能远优于Python中的嵌套列表 。数组越大 。Numpy的优势就越明显 。Numpy系统是Python的一种开源的数值计算扩展 。这种工具可用来存储和处理大型矩阵 。比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)) 。据说NumPy将Python相当于变成一种免费的更强大的MatLab系统 。
1.ndarray的优势
NumPy提供了一个N维数组类型ndarray 。它描述了相同类型的“items”的集合 。
一、内存块风格:
这是因为ndarray中的所有元素的类型都是相同的 。而Python列表中的元素类型是任意的 。所以ndarray在存储元素时内存可以连续 。而python原生lis就t只能通过寻址方式找到下一个元素 。这虽然也导致了在通用性能方面Numpy的ndarray不及Python原生list 。但在科学计算中 。Numpy的ndarray就可以省掉很多循环语句 。代码使用方面比Python原生list简单的多 。
二、ndarray支持并行化运算(向量化运算)
三、Numpy底层使用C语言编写 。内部解除了GIL(全局解释器锁) 。其对数组的操作速度不受Python解释器的限制 。效率远高于纯Python代码 。

推荐阅读