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知识汇总
重要链接: matplotlib库:matplotlib — Matplotlib 3.5.1 documentation DataFrame库:DataFrame — pandas 2.2.1 documentation (pydata.org) Python Matplotlib 实现散点图、曲线图、箱状图、柱状图示例:Python Matplotlib 实…...
WEB面试题
1.基础 Web 技术: 1.1 h5 行内元素和块级元素 行内元素不会独占一行,高度和宽度由内容决定,不能单独设置宽高, 不能设置上下的margin和padding,只能设置左右的margin和padding; …...
Android Studio 六大基本布局详解
Android应用开发中,布局是至关重要的一部分,而Android Studio作为主流的开发工具,提供了多种布局方式来灵活适应不同的界面需求。在本文中,我们将深入探讨Android Studio中的六大基本布局,旨在帮助开发者更好地理解和运…...
如何应对IT服务交付中的问题?
如何应对IT服务交付中的问题? 按需交付服务的挑战IT服务体系的复杂性恶性循环的形成学会洞察的重要性书籍简介参与方式 按需交付服务的挑战 一致性、可靠性、安全性、隐私性和成本效益的平衡:成功的按需交付服务需要满足这些要求,这需要服务…...
[Python] 缓存实用工具
cachetools 是一个 Python 库,提供了用于缓存的实用工具,包括各种缓存算法和数据结构,如 LRU(最近最少使用)缓存、TTL(时间到期)缓存等。使用 cachetools 可以轻松地在 Python 应用程序中实现缓…...
php反序列化字符逃逸
php反序列化和序列化 PHP序列化:serialize() 序列化是将变量或对象转换成字符串的过程,用于存储或传递 PHP 的值的过程中,同时不丢失其类型和结构。“序列化”是一种把对象的状态转化成字节流的机制 类似于这样的结构: O:4:&quo…...
延迟加载(Lazy Initialization)的单例模式
延迟加载(Lazy Initialization)的单例模式是一种在对象第一次被请求时才创建单例实例的设计模式。这种方法可以减少程序启动时的负载和启动时间,特别是当单例对象的创建开销较大或者在启动时不一定需要该对象时。 下面是实现延迟加载单例模式…...
C++三级专项 流感传染
时间限制:1000 内存限制:65536 有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每…...
如何用Elementor创建WordPress会员网站
在下面的文章中,我们将向您展示如何使用Elementor和MemberPress在WordPress中轻松构建会员网站。这篇文章将涵盖WordPress会员网站设置过程、会员资格和受保护内容创建、重要页面和登录表单设计、电子邮件通知管理、报告等。 目录 什么是WordPress会员网站&#x…...
【脑切片图像分割】MATLAB 图像处理 源码
1. 简单图像处理 加载图像 Brain.jpg,使用直方图和颜色分割成区域这些区域有不同的颜色。 这是一个更高级的问题,有多个解决它的方法。 例如,您可以计算具有特定数字的图像的直方图(例如 16 - 32),找到直方…...
深度学习系列61:在CPU上运行大模型
1. 快速版 1.1 llamafile https://github.com/Mozilla-Ocho/llamafile 直接下载就可以用,链接为:https://huggingface.co/jartine/llava-v1.5-7B-GGUF/resolve/main/llava-v1.5-7b-q4.llamafile?downloadtrue 启动:./llava-v1.5-7b-q4.lla…...
IO接口 2月5日学习笔记
1.fgetc 用于从文件中读取一个字符,fgetc 函数每次调用将会返回当前文件指针所指向的字符,并将文件指针指向下一个字符。 int fgetc(FILE *stream); 功能: 从流中读取下一个字符 参数: stream:文件流指针 返回值: …...
Android Studio开发(一) 构建项目
1、项目创建测试 1.1 前言 Android Studio 是由 Google 推出的官方集成开发环境(IDE),专门用于开发 Android 应用程序。 基于 IntelliJ IDEA: Android Studio 是基于 JetBrains 的 IntelliJ IDEA 开发的,提供了丰富的功能和插件…...
stm32flash模拟eeprom
stm32f103CB的flash是128k(起始地址是 0x08000000 到 0x0801FFFF) falsh的末地址是0x801FFFF,即倒数一页是0x801FBFF(1页按照1kB1024B来算) 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、手机打开开发者模式,打开usb调试,连接电脑4、运行代码 1、qt安装android组件 qtcreater–工具-QTMaintenaceTool-startMaintenaceTool—登陆—添加或修改组件—找到android,安装 若是…...
Windows C++ SecurityImpersonation级别:线程临时采用另一个用户(客户端)的身份进行操作的能力
SecurityImpersonation 是 Windows 操作系统中安全模型的一个级别,用于描述一个线程临时采用另一个用户(客户端)的身份进行操作的能力。这是Windows安全性的一个核心概念,允许服务或进程在执行特定任务时拥有与请求该服务的用户相…...
重学SpringBoot3-yaml文件配置
重学SpringBoot3-yaml文件配置 引言YAML 基本语法YAML 数据类型YAML 对象YAML 数组复合结构标量引用 YAML 文件结构Spring Boot 中的 YAML 配置注意事项总结参考 引言 YAML(YAML Ain’t Markup Language)是一种常用于配置文件的数据序列化格式ÿ…...
【管理咨询宝藏资料33】某头部咨询公司组织效能提升模型方案
本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏资料33】某头部咨询公司组织效能提升模型方案 【关键词】战略规划、组织效能、管理咨询 【文件核心观点】 - 通过长期行业积累和市场洞察&#…...
特征值和特征向量及其在机器学习中的应用
特征值和特征向量是线性代数中的概念,用于分析和理解线性变换,特别是由方阵表示的线性变换。它们被用于许多不同的数学领域,包括机器学习和人工智能。 在机器学习中,特征值和特征向量用于表示数据、对数据执行操作以及训练机器学…...
Claude CLI 缓存陷阱:为什么用第三方模型时 token 会暴涨 10 倍?
一个开发者的真实经历 上周,我收到一位朋友的微信: “我用 Claude Code 接 DeepSeek API,明明代码没怎么变,token 消耗却突然涨了好几倍,一天就把额度用完了。” 这个情况不是个例。在 GitHub 上,至少有 80 多个相关 issue,核心问题都指向同一个点——Claude CLI 默认…...
东南大学论文模板:告别格式烦恼,专注学术创新的8倍效率解决方案
东南大学论文模板:告别格式烦恼,专注学术创新的8倍效率解决方案 【免费下载链接】SEUThesis 东南大学论文模板 项目地址: https://gitcode.com/gh_mirrors/seu/SEUThesis 东南大学SEUThesis论文模板库是专为东大学子设计的学术写作利器࿰…...
DataRoom:一站式开源大屏设计器终极指南,快速构建专业数据可视化大屏
DataRoom:一站式开源大屏设计器终极指南,快速构建专业数据可视化大屏 【免费下载链接】DataRoom 🔥基于SpringBoot、MyBatisPlus、ElementUI、G2Plot、Echarts等技术栈的大屏设计器,具备目录管理、DashBoard设计、预览能力&#x…...
5大核心功能深度解析:Akebi-GC游戏辅助工具完整使用指南
5大核心功能深度解析:Akebi-GC游戏辅助工具完整使用指南 【免费下载链接】Akebi-GC (Fork) The great software for some game that exploiting anime girls (and boys). 项目地址: https://gitcode.com/gh_mirrors/ak/Akebi-GC Akebi-GC是一款功能强大的游戏…...
WeChatFerry微信机器人:3步打造你的AI智能助手
WeChatFerry微信机器人:3步打造你的AI智能助手 【免费下载链接】WeChatFerry 微信机器人,可接入DeepSeek、Gemini、ChatGPT、ChatGLM、讯飞星火、Tigerbot等大模型。微信 hook WeChat Robot Hook. 项目地址: https://gitcode.com/GitHub_Trending/we/W…...
EasyReport核心架构解析:揭秘报表引擎、查询器与数据执行器的设计原理
EasyReport核心架构解析:揭秘报表引擎、查询器与数据执行器的设计原理 【免费下载链接】EasyReport A simple and easy to use Web Report System for java.EasyReport是一个简单易用的Web报表工具(支持Hadoop,HBase及各种关系型数据库),它的主要功能是把SQL语句查询…...
从0到1:如何用MNBVC超大规模中文语料库训练你的中文大模型
从0到1:如何用MNBVC超大规模中文语料库训练你的中文大模型 【免费下载链接】MNBVC MNBVC(Massive Never-ending BT Vast Chinese corpus)超大规模中文语料集。对标chatGPT训练的40T数据。MNBVC数据集不但包括主流文化,也包括各个小众文化甚至火星文的数据…...
专业级抖音资源自动化采集方案:douyin-downloader企业级部署指南
专业级抖音资源自动化采集方案:douyin-downloader企业级部署指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fall…...
AI驱动的CNC闭环控制系统:边缘实时感知与控制实践
1. 项目概述:这不是在改装一台机床,而是在给金属加工装上“神经系统”“AI-Driven Machining: Building a Closed-Loop CNC System with IIoT Feedback (Building the CNC)”——这个标题里没有一个词是虚的。它不是在讲怎么用AI生成个加工路径图&#x…...
短信验证码5大常见漏洞与防御实战
1. 这不是“绕过”,而是对验证码机制的深度体检你有没有遇到过这样的场景:在测试一个新上线的注册流程时,输入手机号、点击“获取验证码”,页面立刻弹出“验证码已发送成功”,但手机却迟迟没收到短信;再点一…...



