当前位置: 首页 > news >正文

Python知识汇总

 重要链接:

matplotlib库:matplotlib — Matplotlib 3.5.1 documentation

DataFrame库:DataFrame — pandas 2.2.1 documentation (pydata.org)

Python Matplotlib 实现散点图、曲线图、箱状图、柱状图示例:Python Matplotlib 实现散点图、曲线图、箱状图、柱状图示例(满足基本的画图需求)_matplotlib实现散点图-CSDN博客

绘图颜色色板:matplotlib、seaborn颜色、调色板、调色盘。 - 知乎

常用函数:

基础操作合集:

获取所有列名

list(df)

df.columns.tolist()

list(df.columns)

获取数据类型

type(df) 

如显示:<class 'padas.core.frame.DataFrame>

获取每列类型df.dtypes

Pandas读取某列某行数据——loc、iloc

loc:通过行、列的名称或标签来索引
iloc:通过行、列的索引位置来寻找数据数据:AA  BB  CC  DD  EE
row1  2   3   56  55  4
row2  5   7   4   34  5
row3  9   7   4   7   15
row4  5  72   43  34  5data1 = data.loc['row2']   #row2一行的值
data1 = data.loc['row2',:] #row2一行的值
data2 = data.loc[ : ,'BB'] #BB一列的值
data3 = data.loc['row1', 'BB'] #row1行BB列对应的值,3
data4 = data.loc['row2':'row3','AA':'DD']  #第2行到第3行,第BB列到第DD列这个区域内的值
data5 = data.loc[ data.BB > 6] #等价于 data5 = data[data.BB > 6] #BB列大于6的每一行数据
data6 = data.loc[ data.BB >6, ["BB","CC","DD"]] #切片操作,选择BB CC DD三列区域内BB列大于6的值data1 = data.iloc[1]  #第二行的值,
data1 = data.iloc[1, :]  #效果与上面相同
data2 = data.iloc[:, 1] #读取第二列的值
data3 = data.iloc[1, 1] # 读取第二行,第二列的值
data4 = data.iloc[1:3, 2:4] #左闭右开切片操作,第2、3行,第3、4列值

Python、Numpy和Pandas数据类型:

Python中的str和Numpy中的string、unicode(字符编码),在Pandas中都表示为object,也就是字符串在Pandas中的类型为object。

datetime数据类型转换:

#object转为datatime
df = pd.DataFrame({'date': ['2011-04-24 01:30:00.000']})
df['date'] = pd.to_datetime(df['date'])
#打印结果
0   2011-04-24 01:30:00
Name: date, dtype: datetime64[ns]
#datatime转为非时间数据
df['date'] = df['date'].astype('object')
#打印结果
0   2011-04-24 01:30:00
Name: date, dtype: object#如果字符串格式不正规,可以通过format转换
pd.to_datetime("20110424 01:30:00.000", format='%Y%m%d %H:%M:%S.%f')

时间补全、重采集resample()函数:

采样频率:python时序分析之重采集(resample) - 知乎

resampling采样相关算法、属性:Resampling — pandas 2.2.1 documentation (pydata.org)

按照一分钟的频率将时间补全,mean()将补齐的时间数据识别为NaN
#ffill()方法使用前面的值来填充缺失的值,interpolate()是使用插值法补全,bfill()是向后补全
df=df.resample('1T').mean().ffill()
#获得五分钟为间隔的数据,asfreq()也可以换成其他,如first()
df5=df.resample('5T').asfreq()
df5=df.loc[::5,:]

pandas.Dataframe.set_index( )函数设置索引:

索引设置
df.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)
-keys:列标签或列标签/数组列表,需要设置为索引的列
-drop:默认为True,删除用作新索引的列
-append:是否将列附加到现有索引,默认为False。
-inplace:输入布尔值,表示当前操作是否对原数据生效,默认为False。
-verify_integrity:检查新索引的副本。否则,请将检查推迟到必要时进行。将其设置为false将提高该方法的性能,默认为false。

pandas.Dataframe.reset_index()函数重置索引:

将索引列变为普通数据列
drop: 重新设置索引后是否将原索引作为新的一列并入DataFrame,默认为False
inplace: 是否在原DataFrame上改动,默认为False
level: 如果索引(index)有多个列,仅从索引中删除level指定的列,默认删除所有列
col_level: 如果列名(columns)有多个级别,决定被删除的索引将插入哪个级别,默认插入第一级
col_fill: 如果列名(columns)有多个级别,决定其他级别如何命名import pandas as pd
import numpy as npdf = pd.DataFrame([('bird', 389.0), ('bird', 24.0), ('mammal', 80.5), ('mammal', np.nan)],index=['falcon', 'parrot', 'lion', 'monkey'], columns=('class', max_speed'))
#图1
print(df)
#图2
df1 = df.reset_index()
print(df1)
#图3
df2 = df.reset_index(drop=True)
print(df2)

pandas.Dataframe.rename()函数:

用来修改Dataframe数据的行名和列名。
columns:列名
index:行名
axis:指定坐标轴
inplace:是否替换,默认为False。inplace为False时返回修改后结果,变量自身不修改。inplace为True时返回None,变量自身被修改。>>> import pandas as pd
>>> df  A  B
0  1  4
1  2  5
2  3  6# 方法一:不用axis修改。使用方法为df.rename(columns={"旧列名": "新列名"}) 
>>> df.rename(columns={"A": "a", "B": "c"})  # 修改columns。inplace未设置,返回修改后的结果a  c
0  1  4
1  2  5
2  3  6
>>> df  # inplace未设置,默认为false,则df自身不被改变A  B
0  1  4
1  2  5
2  3  6
>>> df_re=df.rename(columns={"A": "a", "B": "c"},index={0:"0a",1:"1a"})  # 同时修改行名和列名
>>> df_rea  c
0a  1  4
1a  2  5
2   3  6# 方法二:用axis修改,只修改行名列名之一时等价,无法同时修改
>>> df.rename({1: 2, 2: 4}, axis='index')  # 修改行名,1改成2,2改成4A  B
0  1  4
2  2  5
4  3  6
>>> df.rename(str.lower, axis='columns')  # 列名大写变小写a  b
0  1  4
1  2  5
2  3  6

绘图函数:

plt.annotate()函数:

用于在图中标注文字,需要用循环配合,一个点一个点的标记。

曲线中异常点/特征点的标记方法。

 参考:https://matplotlib.org/3.5.1/api/_as_gen/matplotlib.pyplot.annotate.html

#参数
#s 为注释文本内容
#xy 为被注释的坐标点
#xytext 为注释文字的坐标位置;
#weight 设置字体线型;color 设置字体颜色;arrowprops 箭头参数,参数类型为字典dict;bbox给标题增加外框 import matplotlib.pyplot as plt
import numpy as npx = np.arange(0, 6)
y = x * x#图1
plt.plot(x, y, marker='o')
for xy in zip(x, y):plt.annotate("(%s,%s)" %(x,y), xy=xy, xytext=(-20, 10), textcoords='offset points')
plt.show()#图2
ax.annotate('data = (%.1f, %.1f)'%(xdata, ydata),(xdata, ydata), xytext=(-2*offset, offset), textcoords='offset points',bbox=bbox, arrowprops=arrowprops)#图3,上述用于标注文字,但如果想把特殊的坐标用点标示出来可以结合散点图函数
x1=list()
y1=list()
plt.plot(x, y, marker='o')
for xy in zip(x, y):if x>3:plt.annotate("(%s,%s)" %(x,y), xy=xy, xytext=(-20, 10), textcoords='offset points')x1.append(x)y1.append(y)
plt.scatter(x1,y1,marker="p',color='m'))

相关文章:

Python知识汇总

重要链接&#xff1a; matplotlib库&#xff1a;matplotlib — Matplotlib 3.5.1 documentation DataFrame库&#xff1a;DataFrame — pandas 2.2.1 documentation (pydata.org) Python Matplotlib 实现散点图、曲线图、箱状图、柱状图示例&#xff1a;Python Matplotlib 实…...

WEB面试题

1.基础 Web 技术&#xff1a; 1.1 h5 行内元素和块级元素 行内元素不会独占一行&#xff0c;高度和宽度由内容决定&#xff0c;不能单独设置宽高&#xff0c; 不能设置上下的margin和padding&#xff0c;只能设置左右的margin和padding&#xff1b; …...

Android Studio 六大基本布局详解

Android应用开发中&#xff0c;布局是至关重要的一部分&#xff0c;而Android Studio作为主流的开发工具&#xff0c;提供了多种布局方式来灵活适应不同的界面需求。在本文中&#xff0c;我们将深入探讨Android Studio中的六大基本布局&#xff0c;旨在帮助开发者更好地理解和运…...

如何应对IT服务交付中的问题?

如何应对IT服务交付中的问题&#xff1f; 按需交付服务的挑战IT服务体系的复杂性恶性循环的形成学会洞察的重要性书籍简介参与方式 按需交付服务的挑战 一致性、可靠性、安全性、隐私性和成本效益的平衡&#xff1a;成功的按需交付服务需要满足这些要求&#xff0c;这需要服务…...

[Python] 缓存实用工具

cachetools 是一个 Python 库&#xff0c;提供了用于缓存的实用工具&#xff0c;包括各种缓存算法和数据结构&#xff0c;如 LRU&#xff08;最近最少使用&#xff09;缓存、TTL&#xff08;时间到期&#xff09;缓存等。使用 cachetools 可以轻松地在 Python 应用程序中实现缓…...

php反序列化字符逃逸

php反序列化和序列化 PHP序列化&#xff1a;serialize() 序列化是将变量或对象转换成字符串的过程&#xff0c;用于存储或传递 PHP 的值的过程中&#xff0c;同时不丢失其类型和结构。“序列化”是一种把对象的状态转化成字节流的机制 类似于这样的结构&#xff1a; O:4:&quo…...

延迟加载(Lazy Initialization)的单例模式

延迟加载&#xff08;Lazy Initialization&#xff09;的单例模式是一种在对象第一次被请求时才创建单例实例的设计模式。这种方法可以减少程序启动时的负载和启动时间&#xff0c;特别是当单例对象的创建开销较大或者在启动时不一定需要该对象时。 下面是实现延迟加载单例模式…...

C++三级专项 流感传染

时间限制&#xff1a;1000 内存限制&#xff1a;65536 有一批易感人群住在网格状的宿舍区内&#xff0c;宿舍区为n*n的矩阵&#xff0c;每个格点为一个房间&#xff0c;房间里可能住人&#xff0c;也可能空着。在第一天&#xff0c;有些房间里的人得了流感&#xff0c;以后每…...

如何用Elementor创建WordPress会员网站

在下面的文章中&#xff0c;我们将向您展示如何使用Elementor和MemberPress在WordPress中轻松构建会员网站。这篇文章将涵盖WordPress会员网站设置过程、会员资格和受保护内容创建、重要页面和登录表单设计、电子邮件通知管理、报告等。 目录 什么是WordPress会员网站&#x…...

【脑切片图像分割】MATLAB 图像处理 源码

1. 简单图像处理 加载图像 Brain.jpg&#xff0c;使用直方图和颜色分割成区域这些区域有不同的颜色。 这是一个更高级的问题&#xff0c;有多个解决它的方法。 例如&#xff0c;您可以计算具有特定数字的图像的直方图&#xff08;例如 16 - 32&#xff09;&#xff0c;找到直方…...

深度学习系列61:在CPU上运行大模型

1. 快速版 1.1 llamafile https://github.com/Mozilla-Ocho/llamafile 直接下载就可以用&#xff0c;链接为&#xff1a;https://huggingface.co/jartine/llava-v1.5-7B-GGUF/resolve/main/llava-v1.5-7b-q4.llamafile?downloadtrue 启动&#xff1a;./llava-v1.5-7b-q4.lla…...

IO接口 2月5日学习笔记

1.fgetc 用于从文件中读取一个字符&#xff0c;fgetc 函数每次调用将会返回当前文件指针所指向的字符&#xff0c;并将文件指针指向下一个字符。 int fgetc(FILE *stream); 功能: 从流中读取下一个字符 参数: stream:文件流指针 返回值: …...

Android Studio开发(一) 构建项目

1、项目创建测试 1.1 前言 Android Studio 是由 Google 推出的官方集成开发环境&#xff08;IDE&#xff09;&#xff0c;专门用于开发 Android 应用程序。 基于 IntelliJ IDEA: Android Studio 是基于 JetBrains 的 IntelliJ IDEA 开发的&#xff0c;提供了丰富的功能和插件…...

stm32flash模拟eeprom

stm32f103CB的flash是128k&#xff08;起始地址是 0x08000000 到 0x0801FFFF&#xff09; falsh的末地址是0x801FFFF&#xff0c;即倒数一页是0x801FBFF&#xff08;1页按照1kB1024B来算&#xff09; stm32f103参考手册stm32f103cb.pdf stm32的FLASH分为主存储块和信息块&…...

多模态MLLM都是怎么实现的(2)-DDPM

上一篇的链接:多模态MLLM都是怎么实现的(2) (qq.com) 上上篇的链接:多模态MLLM都是怎么实现的(1) (qq.com) 在第一篇我们简单介绍了一下多模态训练的原理,包括clip,第二篇正好Sora横空出世,也让我就Dit做了一下抛砖引玉,顺便讲了VAE和ViT的部分,上节课我说过, DiT…...

QT----写完的程序打包为APK在自己的手机上运行

目录 1、qt安装android组件2、打开qt配置Android 环境3、手机打开开发者模式&#xff0c;打开usb调试&#xff0c;连接电脑4、运行代码 1、qt安装android组件 qtcreater–工具-QTMaintenaceTool-startMaintenaceTool—登陆—添加或修改组件—找到android&#xff0c;安装 若是…...

Windows C++ SecurityImpersonation级别:线程临时采用另一个用户(客户端)的身份进行操作的能力

SecurityImpersonation 是 Windows 操作系统中安全模型的一个级别&#xff0c;用于描述一个线程临时采用另一个用户&#xff08;客户端&#xff09;的身份进行操作的能力。这是Windows安全性的一个核心概念&#xff0c;允许服务或进程在执行特定任务时拥有与请求该服务的用户相…...

重学SpringBoot3-yaml文件配置

重学SpringBoot3-yaml文件配置 引言YAML 基本语法YAML 数据类型YAML 对象YAML 数组复合结构标量引用 YAML 文件结构Spring Boot 中的 YAML 配置注意事项总结参考 引言 YAML&#xff08;YAML Ain’t Markup Language&#xff09;是一种常用于配置文件的数据序列化格式&#xff…...

【管理咨询宝藏资料33】某头部咨询公司组织效能提升模型方案

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏资料33】某头部咨询公司组织效能提升模型方案 【关键词】战略规划、组织效能、管理咨询 【文件核心观点】 - 通过长期行业积累和市场洞察&#…...

特征值和特征向量及其在机器学习中的应用

特征值和特征向量是线性代数中的概念&#xff0c;用于分析和理解线性变换&#xff0c;特别是由方阵表示的线性变换。它们被用于许多不同的数学领域&#xff0c;包括机器学习和人工智能。 在机器学习中&#xff0c;特征值和特征向量用于表示数据、对数据执行操作以及训练机器学…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

WPF八大法则:告别模态窗口卡顿

⚙️ 核心问题&#xff1a;阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程&#xff0c;导致后续逻辑无法执行&#xff1a; var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题&#xff1a…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

DBLP数据库是什么?

DBLP&#xff08;Digital Bibliography & Library Project&#xff09;Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高&#xff0c;数据库文献更新速度很快&#xff0c;很好地反映了国际计算机科学学术研…...

算法打卡第18天

从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7…...

向量几何的二元性:叉乘模长与内积投影的深层联系

在数学与物理的空间世界中&#xff0c;向量运算构成了理解几何结构的基石。叉乘&#xff08;外积&#xff09;与点积&#xff08;内积&#xff09;作为向量代数的两大支柱&#xff0c;表面上呈现出截然不同的几何意义与代数形式&#xff0c;却在深层次上揭示了向量间相互作用的…...