Python數(shù)據(jù)科學(xué)入門
Dmitry Zinoviev著
熊子源 譯
第二章 數(shù)據(jù)科學(xué)的Python核心
第4單元 理解基本的字符串函數(shù)
大小寫轉(zhuǎn)換函數(shù):
lower() | 將所有字符轉(zhuǎn)換為小寫 |
---|---|
upper() | 將所有字符轉(zhuǎn)換為大寫 |
capitalize() | 將第一個字符轉(zhuǎn)換為大寫,同時將后面的字符都轉(zhuǎn)化為小寫 |
(這些操作都不會影響其他非字母字符)
字符串判定函數(shù):
islower() | 判斷字符串中的所有字母是否都是小寫 |
---|---|
isupper() | 判斷字符串中的所有字母是否都是大寫 |
isspace() | 檢查所有字符是否為空格 |
isdigit() | 檢查所有字符是否為0-9中的數(shù)字 |
isalpha() | 檢查所有字符是否為a-z,A-Z中的字母字符 |
符號b表示二進制數(shù)組:
Array1 = b”hello” #二進制數(shù)組
Array2 = ”hello” #字符串?dāng)?shù)組
>>>Array1[0]
104
>>>Array2[0]
‘h’
Array1.decode() #將二進制數(shù)組轉(zhuǎn)化為字符串?dāng)?shù)組
Array2.encode() #將字符串?dāng)?shù)組轉(zhuǎn)化為二進制數(shù)組
去除字符串周圍的空格:
strip() | 刪除整個字符串前后的空格 |
---|---|
istrip() | 刪除字符串左邊(開始處)的空格 |
rstrip() | 刪除字符串右邊(結(jié)束處)的空格 |
(不刪除字符串內(nèi)部的空格)
分割、連接字符串:
Split(delim=””) #使用delim中的內(nèi)容作為分隔符,來分割字符串
“”.join() #使用””中的內(nèi)容將()中的內(nèi)容連接起來
查找字符索引:
“”.find(needle) #查找needle在””字符串中第一次出現(xiàn)的索引值
“”.Count(needle) #查找needle在””字符串中出現(xiàn)的次數(shù)
(區(qū)別字符串大小寫)
第5單元 選擇合適的數(shù)據(jù)結(jié)構(gòu)
列表 | 搜索時間是線性的,不適合存儲大量的可搜索數(shù)據(jù) |
---|---|
元組 | 不可變的列表,搜索時間也是線性的 |
集合 | 不存在索引,適合成員查詢和消除重復(fù)項 |
字典 | 構(gòu)建一個從鍵到值得映射,適合鍵值的查找 |
字典說明:
1,通過(鍵,值)這樣的元組列表創(chuàng)建字典
2,使用內(nèi)置類構(gòu)造函數(shù)enumerate(seq)創(chuàng)建字典(seq為值,鍵位對應(yīng)的序號)
3,使用內(nèi)置類構(gòu)造函數(shù)zip(kseq,vseq)創(chuàng)建字典(kseq為鍵序列,vseq為值序列(兩個序列的長度相同))
第6單元 通過列表推導(dǎo)式理解列表
列表推導(dǎo)式是將數(shù)據(jù)集(不一定是列表)轉(zhuǎn)換為列表的表達(dá)式。
(沒什么只要知識點,本來也就沒有多少內(nèi)容,就沒有總結(jié)了)
第7單元 使用計數(shù)器
Collections()模塊定義計數(shù)器
將計數(shù)的集合傳遞給構(gòu)造函數(shù)counter,然后使用most_common()方法獲取各項及其出現(xiàn)頻率。
from collections import counter
phrase = “a man a plan a canal panama”
cntr = counter(phrase.split())
cntr.most_common()
第8單元 使用文件
With語句:顯式的打開一個文件,在退出Python后能自動關(guān)閉文件
#普通語句
f = open(name,mode=”r”)
f.close()
#with語句
With open(name,mode=”r”) as f
f.read() | 以字符串或二進制形式讀取文件所有數(shù)據(jù) |
---|---|
f.write() | 以字符串或二進制形式向文件寫入內(nèi)容 |
第9單元 上網(wǎng)
Urllib.parse模塊提供解析和構(gòu)建網(wǎng)址的工具
Urlparse()方法將網(wǎng)址分為六個元素的元組:協(xié)議、網(wǎng)絡(luò)地址、文件系統(tǒng)路徑、參數(shù)、查詢和片段
第10單元 使用正則表達(dá)式實現(xiàn)模式匹配
將一個需要使用多次的正則表達(dá)式編譯成Pattern對象,使得模式匹配更高效
CompiledPattern = re.complie(pattern,flags=0)
正則表達(dá)式說明
基本操作:
· | 除換行符外的任意字符 |
---|---|
a | 字母a |
a|b | a或b |
字符類:
[a-d] | a,b,c,d中任一字符 |
---|---|
[^a-d] | 除a,b,c,d中任意字符 |
\d | 一個數(shù)字字符 |
\D | 一個非數(shù)字字符 |
\s | 一個空白字符 |
\S | 一個非空白字符 |
\w | 一個字母數(shù)字字符 |
\W | 一個非字母數(shù)字字符 |
數(shù)量相關(guān):
X* | 0個或多個X |
---|---|
X+ | 1個或多個X |
X? | 0或1個X |
X{2} | 2個且僅2個X |
X{2,5} | 2-5個X |
轉(zhuǎn)移字符:
\n | 換行符 |
---|---|
\r | 回車符 |
\t | Tab |
界定符號:
^ | 字符起始處 |
---|---|
\b | 單詞邊界 |
\B | 非單詞邊界 |
$ | 字符結(jié)束處 |
Re模塊
re.split(pattern,string,maxsplit=0,flags=0) #通過Pattern(正則表達(dá)式)將字符串分為maxsplit個字符串,并返回子字符串列表
re.match(pattern,string,flags=0) #檢查字符串開頭是否與Pattern相匹配
re.search(pattern,string,flags=0) #檢查整個字符串是否存在Pattern部分
re.findall(pattern,string,flags=0) #查找與Pattern相匹配的所有子字符串
re.sub(pattern,repl,string,flags=0) #用repl替換字符串的所有非重疊匹配部分
第11單元 globbing文件名
Globbing是匹配特定文件名和通配符的過程,是正則表達(dá)式的簡化版。
(通配符可以包含特殊字符’*’,”?”。+·不是特殊字符)
第12單元 Picking數(shù)據(jù)
Pickle模塊用于實現(xiàn)序列化——將任意的Python數(shù)據(jù)結(jié)構(gòu)保存到一個文件中,并將其作為Python表達(dá)式讀回。
(
"We can never learn to fly without crashing a few times."--《The Flash》
)
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
