1 pandas与NumPy比较

news/2025/2/22 3:05:57/

NumPy

NumPy是用python进行科学计算的一个基础库,因为它提供python基础包没有提供的数据结构和高性能函数。NumPy定义了一种专门用于科学计算的数据结构ndarray - 它是一种N纬数组。特点如下:

  • 内存块风格
    由于ndarray中的所有元素都是相同的,所以存储元素可连续,故在科学计算中,ndarray可以省掉很多循环语句。
  • ndarray支持向量化运算。
  • NumPy底层使用C语言编写,解除了GIL。效率远高于纯Python代码。

创建方法

数组最常见的创建方法就是使用array()函数。

import numpy as npe = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(e)

结果如下:
在这里插入图片描述

pandas 定义

pandas 来源于panel data,可见其要处理的数据是多维而非单纬度。Pandas经常和其他工具一起使用,如数值计算工具NumPy和SciPy分析库scikit-learn,以及数据可视化库matplotlib。其中NumPy则是构建Pandas的基础,后者大量借鉴了NumPy的编码风格。
pandas功能特性广泛,包含的函数类型也众多,数据结构有Series和DataFrame,函数类型有索引函数、汇总函数等

表格容器

Pandas的核心为两种数据结构:SeriesDataFrame

Pandas库的Series对象用来表示一维数据结构,跟数组类似。

DataFrame这种列表式数据结构跟工作表(最常见的Excel工作表)极为相似,其设计初衷是将Series的使用场景由一维扩展到多维。DataFrame是按一定顺序排列的多列数据组成,各列的数据类型可以有所不同(数值、字符串或布尔值等)。

pandas可以读取较多类型的文件格式,从简单的txt、csv、json到excel,hdf5、pickle再到sas、sql、stata等等文件格式都有得以支持。

至于pandas与数据库交互,它可以通过特定的第三方包实现将SQL Server、 PostgreSQL和MySQL数据库中的数据加载到DataFrame中,然后进行各种处理分析。

pandas自带的绘图函数较为简陋,只有简单的plot函数,不过Series或者DataFrame格式的数据可以与matplotlib以及seaborn等绘图工具结合以绘制各类精致的图例。

第三方包datetime与dateutil能够将识别与处理多种时间格式,pandas自身可以生成指定频率的DatetimeIndex,也可以处理时区信息。其移动窗口函数则是大大方便了时间序列分析,使得建立各种AR、MA、ARMA、ARIMA等等时间序列模型方便快捷,而这正是R语言的领地。

pandas与NumPy比较

NumPy除了在相当程度上优化了Python计算过程,其自身还有较多的高级特性,如指定数组存储的行优先或者列优先、广播功能从而快速的对不同形状的矩阵进行计算、ufunc类型的函数可以使得我们丢开循环而编写出更为简洁也更有效率的代码、使用开源项目Numba编写快速的NumPy函数,而Numba则是可以利用GPU进行运算的。

虽然NumPy有着以上的种种出色的特性,其本身则难以独支数据分析这座大厦,这是一方面是由于NumPy几乎仅专注于数组处理,另一方面则是数据分析牵涉到的数据特性众多,需要处理各种表格和混杂数据,远非纯粹的数组(NumPy)方便解决的,而这就是pandas发力的地方。

pandas 这个名称来源于panel data(面板数据),从而可见其要处理的数据是多维度的而非单维度。pandas 含有使数据清洗和分析工作变得更快更简单的数据结构与操作工具。经常是和其他工具一起使用,如数值计算工具NumPy和SciPy,分析库statsmodels与scikit-learn,以及数据可视化库matplotlib。其中NumPy则是构建pandas的基础,后者大量借鉴了NumPy编码风格。

pandas功能特性广泛,其包含的函数类型也众多,数据结构有Series与DataFrame,函数类型有索引函数、汇总函数、加载以及保存众多文件格式函数、与数据库交互函数、字符串处理函数、缺失数据处理函数、合并重塑轴向旋转表格型数据函数、简单的绘图函数、数据聚合(groupby)分组运算(apply)函数、透视表交叉表函数以及时间序列处理方面的各种函数。


http://www.ppmy.cn/news/1276654.html

相关文章

netty源码:(29)ChannelInboundHandlerAdapter

它实现的方法都有一个ChannelHandlerContext参数,它的方法都是直接调用ChannelHandlerContext参数对应的方法,该方法会调用下一个handler对应的方法。 可以继承这个类,重写感兴趣的方法,比如channelRead. 这个类有个子类:SimpleC…

电脑IP地址密码寻找指南:解密如何快速获取IP地址登录密码?

在使用电脑时,你可能会遇到需要查找IP地址登录密码的情况。而对于大部分普通用户来说,这项任务并不容易。那么,IP地址密码到底在哪里找呢?本文将为你详细解析,提供一些方法和技巧,帮助你快速找到电脑的IP地…

node.js mongoose schemaTypes

目录 官方文档 简介 SchemaType 示例 配置SchemaType规则 通用规则 特定schemaType规则 String Number Date Map monggose会根据shcemaType将文档值转换成指定的类型 官方文档 Mongoose v8.0.3: SchemaTypes 简介 SchemaTypes是在使用Mongoose时,用于…

【vCenter Converter】安装 VMware vCenter Converter Standalone

目录 3.2 开始安装 (具体步骤) 关联博文参考资料 3.2 开始安装 (具体步骤) 点击安装程序后,进入安装导向。 终端用户协议。 接受终端用户协议。 指定安装位置。 指定安装类型,默认本地安装即可。 加入VMware用户体验计划。 准备安装。 安装中。 安装完成…

webrtc支持的最小宽度和高度

代码在:h264/sps_parser.cc // // IMPORTANT ONES! Now were getting to resolution. First we read the pic // width/height in macroblocks (16x16), which gives us the base resolution, // and then we continue on until we hit the frame crop offsets, wh…

高防服务器防御靠谱吗?

​  随着互联网的普及和信息技术的不断发展,网络安全问题日益突出。高防服务器作为一种专业的网络安全设备,在防御网络攻击方面扮演着越来越重要的角色。然而,高防服务器是否靠谱,是否能够有效地防御各种网络攻击,一…

用于无监督视频异常检测的合成伪异常:一种简单有效的基于掩码自动编码器的框架 论文阅读

SYNTHETIC PSEUDO ANOMALIES FOR UNSUPERVISED VIDEO ANOMALY DETECTION: A SIMPLE YET EFFICIENT FRAMEWORK BASED ON MASKED AUTOENCODER ABSTRACT1. INTRODUCTION2. METHODS3. EXPERIMENTS AND RESULTS4. CONCLUSION阅读总结: 论文标题:SYNTHETIC PSE…

bash数组的用法

一、单纯数组 #!/usr/bin/env bash#1、定义一个空数组 my_array()#2、增。使用 运算符将元素添加到数组的末尾 my_array("value1") my_array("value2") my_array("value3")#3、增。还可以使用一行的方式一次性添加多个元素到数组 my_array(&qu…