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

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