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

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