Numpy、Pandas常用函数

目录

Numpy

核心功能

常用函数

运算实例

Pandas

核心功能

常用函数

统计汇总函数

数据清洗函数

数据筛选

绘图与元素级函数

时间序列函数

其他函数


Numpy

官方文档:NumPy: the absolute basics for beginners — NumPy v1.26 Manual

NumPy(Numerical Python)是一个用于处理数值运算的 Python 库。它提供了一个高效的多维数组对象(ndarray),以及用于处理这些数组的各种函数。NumPy 是许多其他科学计算库的基础,因为它提供了快速、灵活的数据结构和数学运算功能。

核心功能

NumPy 的核心功能主要包括以下几个方面:

1. 多维数组对象(ndarray):NumPy 提供了一个强大的多维数组对象,即 ndarray。这个对象在内存中是一个连续的数据块,并且支持高效的数值运算和广播操作。通过 ndarray,您可以轻松地表示和操作多维数据。

2. 数组的创建和初始化:NumPy 提供了多种方式来创建和初始化 ndarray。您可以使用列表、元组、NumPy 提供的特殊函数(例如 `numpy.zeros()`、`numpy.ones()`)、随机数生成函数(例如 `numpy.random.rand()`)、从文件中读取数据等方式来创建数组。

3. 数组的索引和切片:与 Python 的列表索引和切片类似,NumPy 提供了丰富的索引和切片操作,可以访问和修改数组中的元素,也可以获取数组的子数组。可以使用整数索引、布尔索引、切片操作和花式索引等方式来访问和操作数组的元素。

4. 数学运算:NumPy 提供了丰富的数学函数和运算符,可以对数组进行各种数学运算,如加法、减法、乘法、除法、幂函数、三角函数、指数函数等。这些运算可以逐元素进行,也可以对整个数组或某个轴上的数据进行运算。

5. 广播机制:NumPy 的广播机制使得不同形状的数组之间可以进行算术运算,而不需要进行显式的形状匹配。广播机制可以降低代码的复杂性,并提高运算效率。

6. 数组的聚合和统计操作:NumPy 提供了丰富的统计函数,如计算平均值、方差、标准差、最小值、最大值、中位数等。这些函数可以应用于整个数组或某个轴上的数据。

7. 线性代数运算:NumPy 提供了线性代数运算的功能,如矩阵乘法、矩阵求逆、特征值分解、奇异值分解等。这些功能在科学计算和机器学习中经常被使用。

8. 文件操作:NumPy 可以将数组以二进制或文本形式保存到文件中,并可以从文件中读取数组数据。这样可以方便地进行数据的持久化和共享。

常用函数

详细参考

np.array()函数从列表或元组创建数组
np.linspace()创建一个具有指定间隔的浮点数的数组
np.arange()在给定的间隔内返回具有一定步长的整数
np.uniform()在上下限之间的均匀分布中生成随机样本
np.random.randint()在一个范围内生成n个随机整数样本
np.random.random()生成n个随机浮点数样本
np.logspace()在对数尺度上生成间隔均匀的数字
np.zeroes()创建一个全部为0的数组
np.ones()创建一个全部为1的数组
np.full()创建一个单独值的n维数组
np.identity()创建具有指定维度的单位矩阵
np.unique()返回一个所有唯一元素排序的数组
np.mean()返回数组的算数平均数
np.average()返回数组的加权平均数
np.medain()返回数组的中位数
np.digitize()返回输入数组中每个值所属的容器的索引
np.reshape()返回一个数组,其中包含具有新形状的相同数据
np.expand_dims()扩展数组的维度
np.squeeze()通过移除一个单一维度来降低数组的维度
np.argwhere()查找并返回非零元素的所有下标
np.count_nonzero()计算所有非零元素并返回它们的计数
np.argmax() argmax返回数组中Max元素的索引。它可以用于多类图像分类问题中获得高概率预测标签的指标
np.sort()对数组排序
np.abs()返回数组中元素的绝对值。当数组中包含负数时它很有用
np.round()将浮点值四舍五入到指定数目的小数点
np.clip()将数组的裁剪值保持在一个范围内
np.where()返回满足条件的数组元素
np.put()用给定的值替换数组中指定的元素
np.copyto()将一个数组的内容复制到另一个数组中
np.intersect1d()函数以排序的方式返回两个数组中所有唯一的值
np.setdiff1d()查找不同元素,返回arr中在arr2中不存在的所有唯一元素
np.setxor1d()从两个数组中提取唯一元素,按顺序返回两个数组中所有唯一的值
np.union1d()将两个数组合并为一个
np.hsplit()将数据水平分割为n个相等的部
np.vsplit()将数据垂直分割为n个相等的部分
np.hstack()水平叠加将在另一个数组的末尾追加一个数组
np.vstack()垂直叠加将一个数组堆叠在另一个数组上
np.allclose()根据公差值查找两个数组是否相等或近似相等
np.equal()比较两个数组的每个元素,如果元素匹配就返回True
np.repeat()用于重复数组中的元素n次
np.einsum()用于计算数组上的多维和线性代数运算
np.histogram()计算一组数据的直方图值
np.percentile()沿指定轴计算数据的Q-T-T百分位数
np.std()用于计算沿轴的标准偏差
np.var()用于计算沿轴的方差
np.searchsorted()查询并返回可插入位置数组
np.insert()将待插入元素数组中的元素,按照位置数组中的位置,插入到目标数组中,返回结果数组
运算实例

Pandas

官方文档:User Guide — pandas 2.1.4 documentation

  • Pandas是一个开源的Python库,提供高性能、易用的数据结构和数据操作工具,用于数据处理和分析。它是构建在NumPy之上的一个扩展,为处理结构化数据(如表格数据)提供了更便捷的方法。
  • 主要的两个数据结构是Series和DataFrame。Series是一维带标签的数组,类似于表格中的一列数据,可以存储不同类型的数据。DataFrame是一个二维的表格数据结构,由多个Series组成,每个Series代表一列数据,可以看作是一个带标签的表格。
  • Pandas提供了许多功能强大的方法,用于数据的清洗和预处理。你可以使用Pandas读取和写入各种数据格式的数据,如CSV、Excel、SQL数据库等。它还提供了一些数据清洗的功能,如去重、处理缺失值、替换数据等。
  • Pandas也支持数据的索引和切片,你可以通过标签或位置来选择数据。此外,Pandas还支持数据的分组和聚合操作,可以根据某些条件对数据进行分组,并对每个组进行统计或计算。
  • 对于多个DataFrame的情况,Pandas提供了合并和拼接的方法,可以按照特定的键将数据进行合并和拼接。这对于数据集成和关联分析非常有用。
  • 另外,Pandas也提供了对时间序列数据的支持,可以方便地进行时间序列的分析和处理,如日期范围生成、时间频率转换、移动窗口统计等。
  • 最后,Pandas还可以与其他数据分析和可视化库(如Matplotlib、Seaborn)结合使用,方便进行数据可视化和探索性分析。
核心功能

Pandas 是一个在 Python 中处理和分析数据的强大库,它提供了高性能、易用的数据结构和数据操作工具。Pandas 的核心功能主要包括以下几个方面:

1. 数据结构:Pandas 提供了两种主要的数据结构,即 Series 和 DataFrame。
   - Series 是一维标记数组,类似于带有索引的一维数组。它可以容纳任意数据类型的数据,并提供了对其数据的快速访问和操作。
   - DataFrame 是二维表格数据结构,类似于关系型数据库中的表或 Excel 中的表格。它由多个具有相同索引的列组成,每个列可以是不同的数据类型。DataFrame 提供了灵活的数据操作和处理方法,适用于各种数据分析任务。

2. 数据的读取和写入:Pandas 能够读取和写入多种数据格式的数据,如 CSV、Excel、SQL 数据库、JSON、HDF5 等。通过 Pandas 的读取和写入函数,您可以方便地将外部数据加载到 DataFrame 中进行分析,或将分析结果写入外部文件。

3. 数据的清洗和预处理:Pandas 提供了丰富的数据清洗和预处理功能,例如数据过滤、缺失值处理、重复值处理、数据格式转换、数据排序等。这些功能可帮助您对数据进行处理,使其适合进行进一步的分析和建模。

4. 数据的索引和切片:Pandas 提供了强大的索引和切片功能,使您可以从数据中选择和提取所需的部分。您可以使用标签索引、整数索引、布尔索引等方式选择行和列,还可以使用切片操作和条件筛选进行灵活的数据选择和过滤。

5. 数据的分组和聚合:Pandas 可以对数据进行分组和聚合操作,以便进行统计和汇总分析。您可以根据某个列或多个列对数据进行分组,然后对每个分组应用聚合功能(如求和、计数、平均值等)。

6. 数据的合并和拼接:Pandas 提供了多种方式来合并和拼接数据,如连接操作、合并操作和拼接操作。这些操作可以将多个 DataFrame 或 Series 中的数据进行合并,以便进行更全面的分析和处理。

7. 时间序列分析:Pandas 对处理时间序列数据提供了丰富的支持。它提供了强大的日期和时间功能,能够处理时间索引、时间序列重采样、滑动窗口计算等时间相关的任务。

8. 数据可视化:Pandas 结合了 Matplotlib 库,可以方便地进行数据可视化。它提供了简单易用的绘图接口,可以绘制各种类型的图表,如线图、散点图、柱状图、箱线图等,帮助您更直观地理解和展示数据。

常用函数
pd.read_csv()读取CSV文件并将其转换为pandas DataFrame
.describe()生成DataFrame的各种特征的汇总统计信息。它返回一个新的DataFrame,其中包含原始DataFrame中每个数值列的计数、平均值、标准差、最小值、第25百分位、中位数、第75百分位和最大值
.info()获得DataFrame的简明摘要,包括每列中非空值的数量、每列的数据类型以及DataFrame的内存使用情况
.iloc()用于根据索引选择行和列
.loc()用于根据DataFrame中基于标签的索引选择行和列。它用于根据基于标签的位置选择行和列
.assign()用于根据现有列的计算向DataFrame添加新列。它允许您在不修改原始数据的情况下添加新列。该函数会返回一个添加了列的新DataFrame
.query()根据布尔表达式过滤数据。可以使用类似于SQL的查询字符串从DataFrame中选择行。该函数返回一个新的DataFrame,其中只包含满足布尔表达式的行
.sort_values()按一列或多列对数据进行排序。它根据一个或多个列的值按升序或降序对DataFrame进行排序。该函数返回一个按指定列排序的新DataFrame
.sample()从数据帧中随机选择行。它返回一个包含随机选择的行的新DataFrame。该函数采用几个参数,可以控制采样过程
.isnull()返回一个与原始DataFrame形状相同的DataFrame,通过True或False值,指示原始DataFrame中的每个值是否缺失。缺失的值NaN或None,在结果的DataFrame中将为True,而非缺失的值将为False
.fillna()用于用指定的值或方法填充DataFrame中的缺失值。默认情况下,它用NaN替换缺失的值,也可以指定一个不同的值来代替
.dropna()从DataFrame中删除缺失值或空值。它从DataFrame中删除至少缺失一个元素的行或列。可以通过调用df.dropna()删除包含至少一个缺失值的所有行
.drop()

通过指定的标签从DataFrame中删除行或列。它可以用于删除一个或多个基于标签的行或列。

你可以通过调用df.drop()来删除特定的行,并传递想要删除的行的索引标签,并将axis参数设置为0(默认为0)

.pivot_table()从DataFrame创建数据透视表。透视表是一种以更有意义和更有组织的方式总结和聚合数据的表
.groupby()用于根据一个或多个列对DataFrame的行进行分组。并且可以对组执行聚合操作,例如计算每个组中值的平均值、和或计数。返回一个GroupBy对象,然后可以使用该对象对组执行各种操作,例如计算每个组中值的和、平均值或计数
.transpose()用于转置DataFrame的行和列,这意味着行变成列,列变成行
.merge()根据一个或多个公共列组合两个dataframe
.rename()更改DataFrame中一个或多个列或行的名称。可以使用columns参数更改列名,使用index参数更改行名
.to_csv()将DataFrame导出到CSV文件
统计汇总函数

数据清洗函数

数据筛选

绘图与元素级函数

时间序列函数

其他函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/254655.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue3 +TS + vite + SVG

如何在如题的项目中使用svg? 我当时首先想到的是 搬运vue2 中svg的使用方式,安装svg-sprite-loader 和做相应的封装。(vue2 svg)你会发现 行不通,因为本项目使用的是vite 构建的无法使用Webpack所以如下代码不执行的 // 自动化加载 // webp…

Mysql高可用|索引|事务 | 调优

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 文章目录 前言sql语句的执行顺序关键词连接名字解释sql语句 面试坑点存储引擎MYSQL存储引擎 SQL优化索引索引失效索引的数据结构面试坑点 锁事务四大特性事务的隔离级别MVCC 读写分离面试坑…

大师学SwiftUI第12章 - 手势 Part 1

手势识别器 手势是用户在屏幕上执行的动作,如点击、滑动或捏合。这些手势很难识别,因为屏幕上只能返回手指的位置。为此,Apple提供了手势识别器。手势识别器完成所有识别手势所需的计算。所以我们不用处理众多的事件和值,只需在等…

公共字段自动填充——后端

场景:当处理一些请求时,会重复的对数据库的某些字段进行赋值(如:在插入和更新某个物品时,需要更新该物品的更新时间和更新者的信息),这样会导致代码冗余。 如: 思路: 自…

避免付费搜索广告系列与有机搜索广告系列之间出现关键词蚕食现象

自然搜索(搜索引擎优化)和付费搜索(或按点击付费)具有足够的技术复杂性和战略方面。 关键词蚕食是一个可能使它们变得更加困难的问题——如果你的搜索引擎优化 (SEO) 和按点击付费 (PPC&#x…

【Python】获取B站粉丝列表保存至数据库中

分析网络请求,获取到有粉丝接口的数据url 可以在响应信息处看到粉丝的信息 通过浏览器也可以直接请求到具体的JSON信息 通过独立的标签我们可以看到接口数据,但是要注意如果不是查看自己登录账户的接口那么就无法查询到所有粉丝的数据,默认只…

Python通过函数名调用函数的几种场景

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 除了执行系统命令外,我们有时还需要动态地执行一些python代码,有经验的朋友就会知道可以使用内置函数eval实现这一需求,如eval(“…

Appcelerator打包ipa有哪些优势

大家好,我是咕噜-凯撒,我们得先知道Appcelerator是啥,Appcelerator(现在更名为Axway Titanium)是一个跨平台的移动应用开发框架通过提供一种简化和加速移动应用开发的方式帮助你构建高质量的跨平台应用程序。那使用App…

【基础篇】YOLO系列训练环境(GPU)搭配篇

🚀Pytorch环境配置(Windows) 🔨 Anaconda安装 此处下载安装即可 ⭐温馨提示:安装路径不能含有中文,建议不要安在c盘(很占内存) 环境变量配置 编辑系统环境变量 -> 环境变量 -> 系统变量 新建并添加以下路径 打开cmd,输入conda&

设计模式—装饰模式

与其明天开始,不如现在行动! 文章目录 装饰模式—穿衣服💎总结 装饰模式—穿衣服 装饰模式(Decorator)可以动态的给对象添加一些额外的职责。 Component是定义一个对象接口,可以给这些对象动态地添加职责。…

【深度学习目标检测】十、基于yolov5的火灾烟雾识别(python,目标检测)

YOLOv5是目标检测领域一种非常优秀的模型,其具有以下几个优势: 1. 高精度:YOLOv5相比于其前身YOLOv4,在目标检测精度上有了显著的提升。YOLOv5使用了一系列的改进,如更深的网络结构、更多的特征层和更高分辨率的输入图…

Vditor - Markdown编辑器使用

1、安装 yarn add vditor2、代码 import vditor/dist/index.css; import React, { useEffect } from react; import Vditor from vditor; import ./index.less;const App ({ setVditorValue, vditorValue }: any) > {const [vd, setVd] React.useState<Vditor>();…

Redis-网络模型

参考资料 &#xff1a;极客时间 Redis&#xff08;亚风&#xff09; 前置知识 系统隔离 为了避免⽤户应⽤导致冲突甚⾄内核崩溃&#xff0c;⽤户应⽤与内核是分离的&#xff1a; 进程的寻址空间会划分为两部分&#xff1a;内核空间、⽤户空间 • ⽤户空间只能执⾏受限的命令&…

激活函数-SwiGLU

SwiGLU SiLU 函数是一种神经网络中的激活函数&#xff0c;全称是 Sigmoid Linear Unit, 也被称为 Swish 函数。它由 Google Brain 在 2017 年提出&#xff0c;是一种非线性激活函数&#xff0c;能够有效地对神经网络的输入进行非线性变换。 定义 f ( x ) x ∗ σ ( x ) f(x)…

vue3使用vue-router嵌套路由(多级路由)

文章目录 1、Vue3 嵌套路由2、项目结构3、编写相关页面代码3.1、编写route文件下 index.ts文件3.2、main.ts文件代码&#xff1a;3.3、App.vue文件代码&#xff1a;3.4、views文件夹下的Home文件夹下的index.vue文件代码&#xff1a;3.5、views文件夹下的Home文件夹下的Tigerhh…

生命在于学习——TV电视盒子渗透测试抓包设置

一、前言 封面图是示例图&#xff0c;因为涉及到保密&#xff0c;所以本次测试的电视盒子不放出外观和设置界面。 这一次要测试电视盒子&#xff0c;大家也都知道&#xff0c;市面上的电视盒子大部分都是Android&#xff0c;当然&#xff0c;要使用笔记本去抓电视盒子的数据包…

圣诞节来了,为大家送上专属圣诞树

Hello大家好&#xff0c;我是Dream。 今天给大家分享一下我很早之前做过的圣诞树&#xff0c;分享给大家&#xff0c;希望可以帮助到大家度过一个浪漫的圣诞节~ Python打造专属于你的圣诞树落叶雪花背景音乐浪漫弹窗 五合一版圣诞树 一、背景故事圣诞节风波❤️❤️❤️ 二、五…

针对海量数据的存储与访问瓶颈的解决方案

背景 在当今这个时代&#xff0c;人们对互联网的依赖程度非常高&#xff0c;也因此产生了大量的数据&#xff0c;企业视这些数据为瑰宝。而这些被视为瑰宝的数据为我们的系统带来了很大的烦恼。这些海量数据的存储与访问成为了系统设计与使用的瓶颈&#xff0c;而这些数据往往存…

内网BUG管理系统本地部署并结合内网穿透实现异地远程访问

文章目录 前言1. 本地安装配置BUG管理系统2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射本地服务3. 测试公网远程访问4. 配置固定二级子域名4.1 保留一个二级子域名5.1 配置二级子域名6. 使用固定二级子域名远程 前言 BUG管理软件,作为软件测试工程师的必备工具之一。在…

Windows如何安装使用TortoiseSVN客户端并实现公网访问本地SVN Server

文章目录 前言1. TortoiseSVN 客户端下载安装2. 创建检出文件夹3. 创建与提交文件4. 公网访问测试 前言 TortoiseSVN是一个开源的版本控制系统&#xff0c;它与Apache Subversion&#xff08;SVN&#xff09;集成在一起&#xff0c;提供了一个用户友好的界面&#xff0c;方便用…