利用python进行数据分析 —— python正则表达式(持续更新中!)

文章目录

  • 利用python进行数据分析 —— python基础知识进阶
    • 重点笔记:正则表达式
      • re.match 匹配开头
      • re.search 全文匹配
      • re.sub 替换删除
      • re.compile 编译正则
      • findall 返回列表
      • finditer 返回迭代器
      • re.split 分割返回列表
      • (?P...) 分组匹配
      • 正则表达符号、修饰符
        • 通配符1 `^`:字符串的开头
        • 通配符2 `$`:字符串的结尾
        • 通配符3 `.`: 任何字符,除了换行
        • 通配符4 `|`:或
        • 通配符5 `{}`: 明确数量
        • 通配符6 `[]`: 一系列符号
        • 通配符7 `()`:一个表达部分的逻辑分组
        • 通配符8 `*` :0个或多个前面的字符,贪婪模式
        • 通配符9 `+`:1个或多个前面的字符
        • 通配符10 `?`:0个或多个前面的字符,非贪婪模式
        • 通配符11 `\`:匹配是否有特殊符号
        • `[^aeiou]`:匹配不在这里的单个字母
        • `[0-9a-fA-F]`:用 - 可以指明一个连续的字符范围
        • `\d`:十进制数字,相当于[0-9],其他进制不行
        • `\D`:非数字,相当于[^0-9],其他进制也不包括
        • `\w`:任何词汇的字符,相当于[a-zA-Z_0-9]
        • `\W`:非词汇字符,相当于[^a-zA-Z_0-9]
        • `\s`:所有的空白字符换页,换行,回车,Tab,纵向Tab,相当于[ \f\n\r\t\v]
        • `\S`:所有的非空白字符,相当于[^ \f\n\r\t\v]
    • 不熟悉的知识点:匿名函数Lambda
      • `sort()`函数和`sorted()`函数区别
    • 不熟悉的知识点:柯里化 —— 部分参数的应用

我是第一次接触机器学习,所以对于机器学习的学习过程研究比较迷茫,最终选定跟着一个B站博主 致敬大神 学习机器学习的基础课程。她的主页有关于机器学习和深度学习的学习顺序以及预备知识等等,比较适合我这种刚入门,或者可以跟随我的博客进行学习。

利用python进行数据分析 —— python基础知识进阶

我之前有一些python的基础,所以直接从这本书开始学习一些python进阶的基础知识。这本书不需要全部都看,博主有视频合集,可以直接选择跟着博主视频学习一些必要的基础知识,通俗易懂!

在这里插入图片描述
这本书的学习笔记,可以参考该博主的 GitHub ,笔记内容真的很详细!!!
我的这篇文章主要针对一些比较复杂和陌生的内容进行复盘。

重点笔记:正则表达式

re.match 匹配开头

功能:匹配开头,如果匹配返回某个值,如果不匹配返回None
通式:re.match(pattern, string, flag=0)
pattern:正则表达式如a,如\d代表0-9的数字
string:要匹配的字符串如abc123
flags:标志位,设置匹配方式,如是否区分大小写等

import re
print(re.match('b','abc123'))

None
import re
print(re.match('a','abc123'))

<re.Match object; span=(0, 1), match='a'>
#span是指匹配范围为(0,1)

在这里插入图片描述

start() 返回匹配开始的位置

end() 返回匹配结束的位置

span() 返回一个元组包含匹配 (开始,结束) 的位置,span就是范围的意思life span寿命

group() 返回被 RE 匹配的字符串

re.search 全文匹配

功能:扫描整个字符串,匹配成功,返回第一个匹配成功的对象,否则返回None
通式:re.search(pattern, string, flags=0)

在这里插入图片描述

re.sub 替换删除

功能:substitude缩写,替换匹配项,用空去替换,那就是删除

通式:re.sub(pattern, repl, string, count=0, flags=0)

repl : 替换的字符串,也可为一个函数

count : 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配

在这里插入图片描述

re.compile 编译正则

功能:编译正则表达式,生成一个pattern,供 match()search() 使用

通式:re.compile(pattern, flags)

在这里插入图片描述

findall 返回列表

功能:全字符串找,匹配,并返回一个列表,否则返回空列表。

通式:findall(string[, pos[, endpos]])

  • string : 待匹配的字符串。

  • pos : 可选参数,指定字符串的起始位置,默认为 0。

  • endpos : 可选参数,指定字符串的结束位置,默认为字符串的长度

在这里插入图片描述

finditer 返回迭代器

功能:类似findall,只不过返回迭代器

通式:re.finditer(pattern, string, flags=0)

在这里插入图片描述

re.split 分割返回列表

功能:按照能够匹配的子串将字符串分割后返回列表

通式:re.split(pattern, string [, maxsplit=0, flags=0])

  • maxsplit:分隔次数,maxsplit=1 分隔一次,默认为 0,不限制次数
import re
pattern = re.compile(r'\W+')
result1 = re.split(pattern, '  runoob, runoob,    runoob.  ',maxsplit=0)
result2 = re.split(pattern, '  runoob, runoob,    runoob.  ',maxsplit=1)
print(result1)
print(result2)

# \W非字母数字及下划线
# 也就是字母数字下划线留着
# ,空格不能要,见到分隔
# .也不能要,见到分隔
# 分隔一次,列表里就有一个元素,就有一个,
# 所以开头结尾都有个空
['', 'runoob', 'runoob', 'runoob', '']
['', 'runoob, runoob,    runoob.  ']

(?P…) 分组匹配

功能:分组匹配,一对值

通式:((?P 《key》 \pattern) 得到一组对应的值,key:匹配的字符

使用groupdict函数可以变成字典

import re
s = '1102231990xxxxxxxx'
res = re.search('(?P<province>\d{3})(?P<city>\d{3})(?P<born_year>\d{4})',s)
print(res.groupdict())


{'province': '110', 'city': '223', 'born_year': '1990'}

正则表达符号、修饰符

通配符1 ^:字符串的开头

在这里插入图片描述

通配符2 $:字符串的结尾

在这里插入图片描述

通配符3 .: 任何字符,除了换行

在这里插入图片描述

通配符4 |:或

在这里插入图片描述

通配符5 {}: 明确数量

1

通配符6 []: 一系列符号

在这里插入图片描述

通配符7 ():一个表达部分的逻辑分组

在这里插入图片描述

通配符8 * :0个或多个前面的字符,贪婪模式

在这里插入图片描述

通配符9 +:1个或多个前面的字符

在这里插入图片描述

通配符10 :0个或多个前面的字符,非贪婪模式

请添加图片描述

通配符11 \:匹配是否有特殊符号

在这里插入图片描述

[^aeiou]:匹配不在这里的单个字母

在这里插入图片描述

[0-9a-fA-F]:用 - 可以指明一个连续的字符范围

请添加图片描述

\d:十进制数字,相当于[0-9],其他进制不行

在这里插入图片描述

\D:非数字,相当于[^0-9],其他进制也不包括

在这里插入图片描述

\w:任何词汇的字符,相当于[a-zA-Z_0-9]

在这里插入图片描述

\W:非词汇字符,相当于[^a-zA-Z_0-9]

在这里插入图片描述

\s:所有的空白字符换页,换行,回车,Tab,纵向Tab,相当于[ \f\n\r\t\v]

在这里插入图片描述

\S:所有的非空白字符,相当于[^ \f\n\r\t\v]

在这里插入图片描述

不熟悉的知识点:匿名函数Lambda

匿名函数,顾名思义就是不需要具体定义函数名的函数,仅单条语句组成,该语句的结果就是返回值。它是通过lambda关键字定义的,这个关键字没有别的含义,仅仅是说“我们正在声明的是一个匿名函数”。
lambda函数比编写完整的函数要少输入很多字,并且清晰很多。例如:

def func(x):
	return x*2
y = func(x)
__________________________

y = lambda x: x * 2

在这里插入图片描述

sort()函数和sorted()函数区别

sort()函数和sorted()函数,两个函数均为排序,不同的是sort()函数改变原来列表,而sorted()函数不改变原来列表,且reverse=False正序,reverse=True反序。

在这里插入图片描述
sorted()函数和lambada()函数结合
在这里插入图片描述

#根据不同字母个数排序
#foo两个字母,aaaa一个字母
strings = ['foo', 'card', 'bar', 'aaaa', 'abab']

#list(x)把foo变成列表['f','o','o'],把字符串变为列表
#set()转化为集合并去掉重复字符,为 {'f', 'o'}
#len()得到长度

strings.sorted(key = lambda x:len(set(list(x))))

不熟悉的知识点:柯里化 —— 部分参数的应用

其实就是从已有函数衍生新的函数

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

wordpress的restfull API使用教程,之如何用postman调试API,以便能使用vue等前端框架开发主题

文章目录 API开发手册在postman中调试这里以 post 一篇文章为例&#xff0c;讲解如何调试&#xff1a; 步骤 1&#xff1a;生成应用密码步骤 2&#xff1a;配置Postman步骤 3&#xff1a;创建文章 参考链接 API开发手册 官方API手册&#xff1a;https://developer.wordpress.o…

基于AWS Billing Conductor自定义账单计算进行【linker账单】RI/SP还原以及账单菜单栏选择性精细化限制策略设置

文章目录 一、客户需求需求① 设置策略屏蔽billing菜单选项查看需求② 账单RI和SP还原及SP和RI的共享 二、AWS Billing Conductor介绍三、IAM 精细操作映射参考四、详细步骤操作演示4.1 AWS Organization策略设置4.2 账单和成本管理设置4.3 AWS Billing Conductor设置4.3.1 创建…

文档图像处理:大模型的突破与新探索

前言 随着数字化时代的到来&#xff0c;文档图像处理技术在各行各业扮演着越来越重要的角色。在2023第十二届中国智能产业高峰论坛&#xff08;CIIS 2023&#xff09;的专题论坛上&#xff0c;合合信息智能技术平台事业部副总经理、高级工程师丁凯博士分享了当前文档图像处理面…

MSPM0G3507——时钟配置(与32关系)

先将32端时钟配置分为1&#xff0c;2&#xff0c;3如图 1是PSC左边未经分频的时钟源&#xff08;HZ&#xff09; 2是经过PSC分频的时钟信号&#xff08;HZ&#xff09; 3是最终的输出信号&#xff08;HZ&#xff09; 3输出的是一个定时器周期的HZ&#xff0c;可以转换成时间 …

ThreeJS-3D教学十五:ShaderMaterial(noise、random)

ThreeJS-3D教学十四:ShaderMaterial(length、fract、step) 上面这篇主要是操作 fragmentShader 片元着色器,实现对物体颜色的修改,这次咱们来看下修改 vertexShader 顶点着色器,这个其实就是位移各个顶点的位置。 接下来我们先介绍下 noise 噪声函数(Perlin Noise、Sim…

linux权限深度解析——探索原理

前言&#xff1a;本节内容主要讲述的是linux权限相关的内容&#xff0c; linux的权限如果使用root账号是感受不到的&#xff0c; 所以我们要使用普通账号对本节相关内容进行学习&#xff0c;以及一些实验的测试。 然后&#xff0c; 通过linux权限的学习我们可以知道为什么有时候…

第33讲:K8S集群StorageClass使用Ceph CSI供应商与Cephfs文件系统集成

文章目录 1.Ceph CSI供应商简介2.创建Cephfs文件系统为StorageCLass提供底层存储端2.1.创建Cephfs文件系统2.2.在Cephfs文件系统中为Storageclass创建子目录2.3.在Cephfs文件系统中创建一个子卷 3.在K8S集群中部署Cephfs-CSI供应商客户端3.1.下载Cephfs-CSI客户端的资源编排文件…

08.C2W3.Auto-complete and Language Models

往期文章请点这里 目录 N-Grams: OverviewN-grams and ProbabilitiesN-gramsSequence notationUnigram probabilityBigram probabilityTrigram ProbabilityN -gram probabilityQuiz Sequence ProbabilitiesProbability of a sequenceSequence probability shortcomingsApproxi…

Spring最早的源码

地址&#xff1a;Spring最早的源码

顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

用Canvas绘制一个高可配置的圆形进度条

&#x1f680; 用Canvas绘制一个高可配置的圆形进度条 问题分析与拆解第一步&#xff0c;初始化一些默认参数&#xff0c;处理canvas模糊问题第二步&#xff0c;定义绘制函数1. 定义绘制主函数入口&#xff0c;该函数汇集了我们定义的其它绘制方法2. 定义绘制圆环函数3. 定义绘…

【跨境分享】中国商家如何卷到国外?电商独立站和电商平台的优势对比

为什么要选择独立站而不是电商平台 对于跨境电商经营者而言&#xff0c;采取多平台、多站点的运营策略是至关重要的战略布局。这一做法不仅有助于分散风险&#xff0c;避免将所有投资集中于单一市场&#xff0c;从而降低“所有鸡蛋置于同一篮子”的隐患&#xff0c;而且有利于拓…

最近换工作的一些启示,清华学姐篇

最近更新频率慢下来了&#xff0c;一部分原因是沉迷运动不能自拔&#xff0c;还有一部分原因是业余分出来很大的精力来拓展个人的边界&#xff0c;希望在工作之外取得一些成绩&#xff0c;写作上耽误了不少&#xff0c;很难做到日更。 所以整体上今年更新频率较低&#xff0c;但…

揭秘机器学习如何改变广告营销游戏规则

揭秘机器学习如何改变广告营销游戏规则 一、前言1.1 大数据时代的到来1.2 广告营销面临的挑战1.3 机器学习为广告营销带来的机遇 二、机器学习在广告营销中的应用2.1 了解消费者2.1.1 数据收集和分析2.1.2 行为模型的建立2.1.3 消费者画像的制作 2.2 定位广告投放人群2.2.1 人群…

vscode取消未使用变量的提示(爆红)

目前项目正在使用ts&#xff08;TypeScript&#xff09;&#xff0c;可以在 tsconfig.json 文件中调整编译选项 在你的项目中找到并打开 tsconfig.json 文件&#xff0c;将noUnusedLocals和noUnusedParameters设置为false&#xff0c;关闭vscode重新打开项目即可 {"comp…

ISO 20000认证:驱动企业IT服务管理变革的利器

在信息技术驱动商业发展的今天&#xff0c;企业对高效、可靠和安全的IT服务需求日益增长。ISO 20000作为国际公认的IT服务管理标准&#xff0c;能够帮助企业在竞争激烈的市场环境中脱颖而出&#xff0c;实现IT服务管理的全面提升。本文将深入探讨ISO 20000认证如何帮助企业优化…

机器学习中的可解释性

「AI秘籍」系列课程&#xff1a; 人工智能应用数学基础 人工智能Python基础 人工智能基础核心知识 人工智能BI核心知识 人工智能CV核心知识 为什么我们需要了解模型如何进行预测 我们是否应该始终信任表现良好的模型&#xff1f;模型可能会拒绝你的抵押贷款申请或诊断你患…

基础跟张宇,强化用36讲还是高数辅导讲义?

基础跟的张宇老师&#xff0c;强化阶段跟谁要看基础学的怎么样&#xff01; 因为张宇老师今年课程大改版&#xff0c;和以往的课程一点也不一样&#xff01; 具体变动是&#xff1a; 张宇老师把往年强化阶段的知识前移&#xff0c;也就是说现在的基础阶段要讲的内容是以往基…

一文读懂:LLM大模型RAG

RAG 检索增强生成&#xff08;Retrieval Augmented Generation&#xff09;&#xff0c;简称 RAG&#xff0c;已经成为当前最火热的LLM应用方案。经历今年年初那一波大模型潮&#xff0c;想必大家对大模型的能力有了一定的了解&#xff0c;但是当我们将大模型应用于实际业务场…

分布式一致性算法:Raft学习

分布式一致性算法&#xff1a;Raft学习 1 什么是分布式系统&#xff1f; 分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。这些节点可能位于不同的物理位置&#xff0c;但它们协同工作以提供一个统一的计算平台或服务。分布式系统…