利用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))))

不熟悉的知識點:柯里化 —— 部分參數的應用

其實就是從已有函數衍生新的函數

在這里插入圖片描述
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42310.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42310.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42310.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

谷歌上新!最強開源模型Gemma 2,27B媲美LLaMA3 70B,挑戰3140億Grok-1

文章目錄 LMSYS Chatbot Arena&#xff1a;開源模型性能第一Gemma為什么這么強&#xff1f;架構創新對AI安全性的提升 A領域競爭激烈&#xff0c;GPT-4o 和 Claude 3.5 Sonnet 持續發力&#xff0c;谷歌迅速跟進。 谷歌為應對AI競爭所采取的策略&#xff1a;依靠 Gemini 閉源模…

hdu物聯網硬件實驗3 按鍵和中斷

學院 班級 學號 姓名 日期 成績 實驗題目 按鍵和中斷 實驗目的 實現閃燈功能轉換 硬件原理 無 關鍵代碼及注釋 /* Button Turns on and off a light emitting diode(LED) connected to digital pin 13, when pressing a pushbutton attached…

AI端側大模型未來發展趨勢

一、定義與優勢 端側AI大模型是指基于移動終端設備上的大型神經網絡模型&#xff0c;這些模型能夠在本地設備&#xff08;如智能手機、PC、汽車、XR以及物聯網設備等&#xff09;上直接運行和處理人工智能算法&#xff0c;實現如圖像識別、語音識別、自然語言處理等任務。端側…

解決WSL2報錯:當前電腦配置不支持WSL2,請啟用虛擬機平臺 Windows 功能并確保在 BIOS 中啟用虛擬化

事情要追溯到突發奇想下載了騰訊的手游模擬器開始。。。因為一直閃退&#xff0c;模擬器自檢就要求把虛擬化功能關閉了&#xff0c;結果還是一直閃退&#xff0c;WSL2也給我報錯了。。。大無語 主要通過以下兩個步驟解決&#xff0c;操作了之后需要把電腦重啟&#xff1a; 一、…

docker里日志分割的方法

在Docker中對日志進行按大小分割&#xff08;log rotation&#xff09;是一個常見的需求&#xff0c;因為長時間運行的容器可能會生成大量日志&#xff0c;導致磁盤空間不足。Docker提供了內置的日志管理功能&#xff0c;可以通過配置日志驅動來實現日志的自動分割。以下是具體…

安卓系統裁剪原生app

目錄 前言一、修改build目錄main.mk二、修改build目錄product.mk三、在.mk中使用PRODUCT_DEL_PACKAGES屬性 前言 安卓系統裁剪預置應用或服務基本步驟 一、修改build目錄main.mk ifdef FULL_BUILD# The base list of modules to build for this product is specified# by th…

小程序做自定義分享封面圖,Canvas base64圖片數據真機上不顯示?【已解決】

首選說一下需求&#xff0c;做一個小程序分享&#xff0c;但是封面圖要自定義&#xff0c;除了要有對應商品還有有背景圖&#xff0c;商品名。類似這種 實現邏輯&#xff0c;把商品圖和背景圖&#xff0c;再加上價格和商品名用canvas 渲染出來 這是弄好之后的效果圖&#xff0…

管理者要勇敢做“壞人”

有點正義感的人都對壞人深惡痛絕&#xff0c;但在團隊管理上&#xff0c;有一種觀念或許會讓你感到意外&#xff0c;那就是管理者要敢于做“壞人”。這并不是讓管理者去做惡&#xff0c;而是在某些關鍵時刻&#xff0c;要有勇氣打破常規的“好人”形象&#xff0c;做出不受歡迎…

執行數據庫語句時沒有報錯,并且提示執行成功,但在數據庫中沒有新增數據

這可能是因為你沒有提交事務。在執行 INSERT、UPDATE 或 DELETE 等修改數據的操作后&#xff0c;需要明確地提交事務才能將更改持久化到數據庫中。 以下是一個示例&#xff0c;展示python中如何在執行 INSERT 語句后提交事務&#xff1a; import pymysql# MySQL數據庫連接配置…

SpringSecurity中文文檔(Servlet Method Security)

Method Security 除了在請求級別進行建模授權之外&#xff0c;Spring Security 還支持在方法級別進行建模。 您可以在應用程序中激活它&#xff0c;方法是使用EnableMethodSecurity 注釋任何Configuration 類&#xff0c;或者將 < method-security > 添加到任何 XML 配…

springbootAl農作物病蟲害預警系統-計算機畢業設計源碼21875

摘要 隨著農業現代化的推進&#xff0c;農作物病蟲害的防治已成為農業生產中的重要環節。傳統的病蟲害防治方法往往依賴于農民的經驗和觀察&#xff0c;難以準確、及時地預測和防控病蟲害的發生。因此&#xff0c;開發一種基于現代信息技術的農作物病蟲害預警系統&#xff0c;對…

【計算機畢業設計】012基于微信小程序的科創微應用平臺

&#x1f64a;作者簡介&#xff1a;擁有多年開發工作經驗&#xff0c;分享技術代碼幫助學生學習&#xff0c;獨立完成自己的項目或者畢業設計。 代碼可以私聊博主獲取。&#x1f339;贈送計算機畢業設計600個選題excel文件&#xff0c;幫助大學選題。贈送開題報告模板&#xff…

Python數據分析實戰,公交車站點設置優化分析,案例教程編程實例課程詳解

一、引言 隨著城市化進程的加快,公共交通在城市交通中扮演著越來越重要的角色。公交車站點作為公共交通系統的重要組成部分,其布局設計直接影響到公共交通的運輸效率和市民的出行體驗。本文將通過Python數據分析的方法,對某城市的公交車站點設置進行優化分析,旨在提出合理的…

解決vite 斷點調試定位不準確問題

問題&#xff1a;vite構建時&#xff0c;控制臺報錯行數等信息定位不準確或debugger斷點調試定位不準確 解決&#xff1a;F12后打開設置面板&#xff0c;把“JavaScript源代碼映射”去掉可臨時解決&#xff0c;如需永久解決需升級vite到最新版 還有一種&#xff1a; 參考&…

esp32_spfiffs

生成 spiffs image python spiffsgen.py <image_size> <base_dir> <output_file> eg, python spiffsgen.py 0x2000 ./folder hello.bin Arduino 的庫有例子可以直接用于 OTA 升級 spiffs 分區 HTTPUpdateResult HTTPUpdate::updateSpiffs(HTTPClient &h…

7.9 cf div3

BProblem - B - Codeforces 題目解讀&#xff1a; 找到嚴格大于相鄰數字的數&#xff0c;將其減一&#xff0c;直到整個數組成為穩定的&#xff08;不存在數字嚴格大于相鄰數&#xff09; ac代碼 #include<bits/stdc.h> typedef long long ll;#define IOS ios::sync_w…

免費白嫖A100活動開始啦,InternLM + LlamaIndex RAG 實踐

內容來源&#xff1a;Docs 前置知識&#xff1a; 檢索增強生成&#xff08;Retrieval Augmented Generation&#xff0c;RAG&#xff09; LlamaIndex LlamaIndex 是一個上下文增強的 LLM 框架&#xff0c;旨在通過將其與特定上下文數據集集成&#xff0c;增強大型語言模型&a…

如何選擇可靠的三方支付公司?

選擇可靠的三方支付公司需要考慮以下幾個方面&#xff1a; - 資質和信譽&#xff1a;確保支付公司具有合法的資質和良好的信譽&#xff0c;可以查看其營業執照、支付業務許可證等相關證件。 - 安全性&#xff1a;了解支付公司的安全措施&#xff0c;如加密技術、風險控制體系等…

【康復學習--LeetCode每日一題】2965. 找出缺失和重復的數字

題目&#xff1a; 給你一個下標從 0 開始的二維整數矩陣 grid&#xff0c;大小為 n * n &#xff0c;其中的值在 [1, n2] 范圍內。除了 a 出現 兩次&#xff0c;b 缺失 之外&#xff0c;每個整數都 恰好出現一次 。 任務是找出重復的數字a 和缺失的數字 b 。 返回一個下標從 0…

探索回歸模型的奧秘:從理論到實踐,以PlugLink為例

回歸模型初探 回歸分析&#xff0c;顧名思義&#xff0c;旨在探索兩個或多個變量之間的關系&#xff0c;特別是當一個變量&#xff08;因變量&#xff09;依賴于其他一個或多個變量&#xff08;自變量&#xff09;時&#xff0c;它能夠預測因變量的值。常見的回歸模型包括線性…