<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java, Only Java!

    統(tǒng)計

    留言簿(20)

    積分與排名

    好友空間

    文檔技巧

    閱讀排行榜

    評論排行榜

    《Python 數(shù)據(jù)科學(xué)實踐指南》讀書筆記

    全書總評

    • 書本印刷質(zhì)量:4 星。印刷清楚,排版合適,錯誤很少。
    • 著作編寫質(zhì)量:3 星。Python 入門和與數(shù)據(jù)處理相關(guān)的各種模塊的入門,以及數(shù)據(jù)處理的入門。作者是原著,寫的確實是自己的東西,不是東抄西抄。只是實踐部分的內(nèi)容實在太淺薄了些。
    • 代碼質(zhì)量:4星。Python入門這本書的IT功底不夠,中間可能會碰到一些坑,最好有點Python基礎(chǔ)以后,用這本書查遺補(bǔ)缺。下載地址
    • 閱讀筆記:記錄需要記住的重點,方便快速回憶。

    C01.Python 介紹

    Python 版本

    • Python 2.x:2001 年發(fā)布,有許多資料和庫基于這個版本編寫;
    • Python 3.x:2009 年發(fā)布,與舊版本不兼容;

    Python 解釋器

    • Python是開源的,因此它的解釋器有許多種實現(xiàn),主流的是官方的解釋器

    Python 之禪

    • import this

    C02.Python 基礎(chǔ)知識

    基礎(chǔ)知識

    • 基礎(chǔ)數(shù)據(jù)類型:在 Python 中,所有的元素都是“對象”。
      • None:表示什么都沒有的類型;
      • int:表示整數(shù)的類型;
      • float:表示浮點數(shù)的類型;
      • bool:表示布爾數(shù)值的類型;
      • str:表示字符串的類型;
    • 變量與賦值:Python 的書寫規(guī)范(PEP8)
      • 序列解包
    • 操作符與表達(dá)式:
      • 算術(shù)操作符:
      • 位操作符:
      • 比較操作符:
      • 邏輯操作符:and,or,not
    • 文本編輯器:
      • 文件編碼:UTF-8

    流程控制:

    • 條件判斷(if…elif…else…):
    • 循環(huán):
      • while:
      • for…in…:
    • 縮進(jìn),空白與注釋
      • 縮進(jìn):分割代碼塊;
      • 空白:沒有任何意義,只為美觀;
      • 注釋:
        • 單行注釋:“#”
        • 多行注釋:”"”…”””

    函數(shù)及異常

    函數(shù):

    • 函數(shù)定義:def func_name()
    • 參數(shù)定義:
      • 實參:
      • 形參:
      • 位置參數(shù)(參數(shù)綁定):根據(jù)定義和調(diào)用函數(shù)時參數(shù)的位置進(jìn)行參數(shù)的賦值;
      • 關(guān)鍵字參數(shù):非關(guān)鍵字參數(shù)不能定義在關(guān)鍵字參數(shù)后面。
      • 可變數(shù)量的參數(shù):def func(*args, **kwargs)
        • *args:位置形參,表示任意數(shù)量的位置參數(shù)都會合并成一個元組,綁定到 args 上;
        • **kwargs:關(guān)鍵字形參,表示任意數(shù)量的關(guān)鍵字參數(shù)都會合并成一個元組,綁定以 kwargs 上;
    • 遞歸:
    • 閉包(closure):又稱詞法閉包(Lexical Closure)或函數(shù)閉包(Function Closure),是引用了自由變量的函數(shù)。這個被引用的自由變量將和這個函數(shù)一同存在,即使已經(jīng)離開了創(chuàng)建它的環(huán)境也不例外。

    異常

    • 異常:(try…except…finally…)

    字符串

    • 運(yùn)算符:
      • “+”:字符串拼接;
      • “*”:字符串復(fù)制多份,然后拼接;
      • 切片 [start,stop,step]:
      • len():字符串長度;

    獲取鍵盤輸入:

    • input(str):

    字符串處理

    • 字符集
      • 字符(Character):是各種文字和符號的總稱;
      • 字符集(Character Set):是多個字符的集合,字符集的各類很多,每個字符集包含的字符個數(shù)也不同。
      • 字符編碼(Character Encoding):也稱字集碼,是把字符集中的字符編碼按指定集合中的某一個對象,以便在計算機(jī)中存儲和通過通信網(wǎng)絡(luò)傳遞文本。
    • ASCII 字符集和編碼
    • Unicode 字符集和 UTF-8 編碼

    字符串操作

    • 基本操作:
      • strip():移除字符串兩側(cè)的所有空白符;
      • capitalize():使字符串的首字母大寫;
      • title():使字符串中每個單詞的首字母大寫;
      • lower():使字符串的所有字母小寫;
      • upper():使字符串的所有字母大寫;
      • isalnum():字符串中包含字母或者數(shù)字時為 True;
      • isdigit():字符串中只包含數(shù)字時為 True;
    • 分割:
      • split(delimiter):將字符串按指定分隔符分割;
      • rsplit(delimiter):將字符串從右邊開始按指定分隔符分割;
    • 格式化:
      • %:print(‘%s’ %name)
      • format():print(‘{one} and {two}’.format(one=’1’,two=’2’))

    正則表達(dá)式

    • 轉(zhuǎn)義符:P55
    • re 模塊:
      • re.compile():匹配模式;
        • match():匹配字符串;

    C05. 容器(Container)與集合(Collections)

    元組(Tuple)

    • 元組:與字符串一樣,是有序的序列,不可以改變內(nèi)容
    • 基本操作:連接、切片都與字符串保持一致;
    • 序列解包:也稱多重賦值;
    • 支持迭代器協(xié)議,支持 for 循環(huán)

    列表(List)

    • 列表:也是序列類型的對象,但是可以改變列表中的內(nèi)容;
    • 基本操作:連接、切片都與字符串保持一致;
    • 更改操作:
      • pop():刪除列表中的數(shù)據(jù),并將刪除的數(shù)據(jù)返回;
      • insert():插入數(shù)據(jù);
      • append():追加數(shù)據(jù);
      • extend():拼接列表;
    • 引用傳遞:所有的賦值都只是引用的傳遞,并沒有創(chuàng)建新的數(shù)據(jù);
      • list[:]:淺拷貝,只拷貝第一層引用的數(shù)據(jù);
      • deepcopy():深拷貝,拷貝所有引用的數(shù)據(jù);
    • 列表解析式:構(gòu)造列表的方式,將一個函數(shù)作用到整個列表中每個元素的方式;[x for x in range(1,3)]

    字典(Dictionary)

    • 字典在其他語言中被稱為散列表,由 key:value 對通過{}組成的無序結(jié)構(gòu)。
    • 常用的函數(shù):
      • get(key):通過 key 取得對應(yīng)的 value;還可以通過鏈?zhǔn)秸{(diào)用取值;
      • dict(list):構(gòu)建新的字典;
      • dict.keys():獲取字典的 keys 迭代;
      • dict.values():獲取字典的 values 迭代;
      • dict.items():獲取字典的 key:value 對的迭代;
      • dict.pop(key):取出指定關(guān)鍵字的值;
      • dict.update(key):更新字典中對應(yīng)的 key 中的 value;

    集合(Collections)

    • namedtuple():具名元組。
    • Counter():累加器,可以用來做經(jīng)典的 word count;
    • defaultdict():為字典設(shè)定一個默認(rèn)值;
    • OrderedDict():使字典有序;

    C06.Python 標(biāo)準(zhǔn)庫

    數(shù)學(xué)模塊:math

    • 常見常量:默認(rèn)精度為 15 位,最多可以取得 48 位
      • math.pi
      • math.e
    • 無窮大與無效數(shù)字:
      • math.inf:表示“無窮大”,是 infinite 的縮寫。math.inf*math.inf==math.inf
      • math.nan:表示“無效數(shù)字”,是 Not a number 的縮寫。math.inf/math.inf==math.nan
      • int 的范圍:在 3.5 中 int 長度理論上是無限的
      • float 的范圍:1e-309~1e+309
    • 浮點數(shù)轉(zhuǎn)換為整數(shù):
      • math.trunc(f):截掉浮點型小數(shù)點后面的數(shù)字;
      • math.floor(f):取最接近浮點型數(shù)字的整數(shù);
      • math.ceil(f):取比當(dāng)前浮點型數(shù)字大的整數(shù);
    • 絕對值和符號:
      • math.fabs(f):浮點數(shù)的絕對值;
      • math.copysign(x,y):符號函數(shù),將 y 的符號傳遞給 x;
    • 常用計算:
      • math.fsum(values):解決 sum(values) 不能精確計算的問題;
      • math.factorial(x):階乘計算函數(shù)。
    • 指數(shù)和對數(shù):
      • math.pow(x,y):x 的 y 次冪;
      • math.log(x):x 以 e 為底的對數(shù);
      • math.log10(x):x 以 10 為底的對數(shù);

    時間模塊:time,datetime,calendar

    • time 模塊:基礎(chǔ)的時間處理模塊;
      • time.time():表示為數(shù)字時間戳,即從格林威治時間:1970-1-1,0:0:0(北京時間:1970-1-1,8:0:0)以來所經(jīng)歷過的秒數(shù);
      • time.ctime(x):沒有 x 則返回當(dāng)前時間的字符串版本,有 x 則返回從時間戳開始經(jīng)過了 x 秒后的時間的字符串。
      • struct_time:具名元組,可以分別獲得年 (tm_year)、月 (tm_mon)、當(dāng)月第幾日 (tm_mday)、時 (tm_hour)、分 (tm_min)、秒 (tm_sec),星期幾 (tm_way,星期一是 0),當(dāng)年第幾天 (tm_yday),是否夏令時 (tm_isdst,沒有為 0);
        • time.gmtime():格林威治下的 struct_time;
        • time.localtime():當(dāng)前電腦所在時區(qū)的 struct_time;
        • time.mktime(struct_time):還原成數(shù)字時間戳的方式;
        • time.strptime(string,format):將字符串格式的時間按照格式轉(zhuǎn)換成 struct_time 格式;
        • time.strftime(format,struct_time):將 struct_time 格式的時間元組轉(zhuǎn)換成字符串格式;
    • datetime 模塊:針對年月日和時分秒分別進(jìn)行處理;
    • calendar 模塊:處理萬年歷;

    隨機(jī)數(shù)模塊:random

    • 隨機(jī)數(shù)生成器:
      • random.random():生成均勻分布的浮點隨機(jī)數(shù),在半開半閉區(qū)間 [0.0, 1.0);
      • random.seed():設(shè)置隨機(jī)數(shù)種子;
      • random.randint(a,b):返回整型隨機(jī)數(shù),在閉區(qū)間 [a,b];
      • random.randrange():返回整型隨機(jī)數(shù),在半開半閉區(qū)間 [a,b);

    取樣:

    • random.shuffle(list):按隨機(jī)性質(zhì)將列表重新排列順序;
    • random.choice(list):按隨機(jī)性質(zhì)從列表中抽取數(shù)據(jù);
    • random.sample(list,k):按隨機(jī)性質(zhì)從列表中抽取指定長度的數(shù)據(jù);

    文件處理:glob 和 fileinput

    • open(filename,mode):基于 mode 模式打開 filename 文件;還支持上下文管理器 with 模式;
    • glob 模塊:目錄處理;
    • fileinput 模塊:批量文件讀入;是一個幫助類;

    壓縮:bz2 和 gzip

    • 不建議使用的壓縮格式:
      • rar:專門服務(wù)于 Windows 下,Python 需要第三方庫才能打開;
      • tar:只用于打包文件,不對文件進(jìn)行壓縮;
      • zip:既可以壓縮文件,還可以打包文件,因為自帶打包功能,不適合用于對文件單獨(dú)壓縮;
    • 建議使用的壓縮格式
      • bz2 模塊:對單個文件可寫可讀,非常方便;
      • gzip 模塊:對單個文件可寫可讀,非常方便;

    漂亮打印:pprint 模塊

    跟蹤異常日志:traceback 模塊

    網(wǎng)絡(luò)數(shù)據(jù)傳輸:JSON

    • json.loads():將 JSON 轉(zhuǎn)換成字典;
    • json.dumps():將字典轉(zhuǎn)換成 JSON;

    C07. 用 Python 讀寫外部數(shù)據(jù)

    CSV,csv 模塊

    • csv.reader():讀取文件;
    • csv.writer():寫入文件;
    • csv.register_dialect():delimiter= 注冊分割符;
    • csv.DictReader():按照字典結(jié)構(gòu)讀取數(shù)據(jù);*

    Excel,pandas 模塊(參考 C10)

    • pandas.read_excel():讀取文件;
    • pandas.to_excel():寫入文件;
    • pandas.set_option():設(shè)置屬性值;
    • pandas.DataFrame():表格結(jié)構(gòu);

    MySQL,MySQLdb 模塊,torndb 模塊

    • db=torndb.Connection(host,database,user,password):建立數(shù)據(jù)庫鏈接;
    • db.insert(SQL),db.insertmany(SQL):向數(shù)據(jù)庫中插入單行數(shù)據(jù),插入多行數(shù)據(jù);
    • db.query(SQL):從數(shù)據(jù)庫讀取數(shù)據(jù);

    PostgreSQL,psycopg2 模塊

    MongoDB,pymongo 模塊

    ElasticSearch,elasticsearch 模塊

    C08. 用 Python 解決統(tǒng)計問題

    • pandas 模塊許多函數(shù)發(fā)生了改變;在 Python 3.7 下 read_excel() 運(yùn)行有問題;統(tǒng)計都沒辦法測試了。

    描述性統(tǒng)計

    • 均值:
    • 中位數(shù):
    • 方差:
    • 標(biāo)準(zhǔn)差:

    數(shù)據(jù)可視化

    • 基本函數(shù):
      • plot()
      • show()
      • figure()
      • title()
      • xlabel()
      • ylabel()
      • legend()
    • 圖形:
      • 折線圖:
      • 散點圖:
      • 柱狀圖:bar()
      • 餅圖:pie()

    C09. 爬蟲入門

    request 模塊

    • HTTP 協(xié)議:
    • 獲取 HTML 內(nèi)容:

    Xpath 模塊

    • 解析 HTML 內(nèi)容:
    • 這個模塊已經(jīng)沒有匹配 Python3.7 的版本了,放棄這個學(xué)習(xí)。

    C10. 數(shù)據(jù)科學(xué)的第三方庫

    Numpy 模塊

    • ndarray:
      • 創(chuàng)建:
        • arange()
        • linspace():度量等寬
        • random.random():隨機(jī)數(shù)
      • 屬性:
        • ndim:數(shù)組的維度;
        • shape:數(shù)組的形狀;
        • dtype.name:數(shù)組中數(shù)據(jù)的類型;
        • itemsize:數(shù)組類型占用的內(nèi)存空間大小;
        • size:數(shù)組中元素個數(shù);
      • 創(chuàng)建特定數(shù)組:
        • zeros():全零矩陣;
        • ones():全 1 矩陣;
        • empty():隨機(jī)的小值組成的矩陣;
    • 基本運(yùn)算:數(shù)組運(yùn)算是基于元素計算的
      • 矩陣乘法:dot()
      • 迭代:與列表類似,直接迭代按行取數(shù),flat() 可以把數(shù)組攤平為一維數(shù)組
      • 變形:resize() 原地修改數(shù)組;reshape() 輸出一個變形后的數(shù)組,原數(shù)組不變;
      • 堆疊:hstack() 行數(shù)相同,水平堆疊;vstack() 列數(shù)相同,垂直堆疊;
    • 高級運(yùn)算
      • transpose():轉(zhuǎn)置;
      • linalg.inv():取逆;
      • eye():單位陣;
      • trace():取跡;
      • linalg.solve():解線性方程;
      • linalg.eig():解特征方程;

    從這里開始,先棄了,這本書適合了解了以后,再來根據(jù)作者的實踐角度查遺補(bǔ)缺。

    Pandas 模塊

    Scikit-Learn 模塊

    C11. 圖數(shù)據(jù)分析

    圖論基礎(chǔ)

    NetworkX 模塊

    利用 NetworkX 進(jìn)行圖分析

    C12. 大數(shù)據(jù)工具

    Hadoop

    Spark

    posted on 2019-03-19 12:51 zYx.Tom 閱讀(192) 評論(0)  編輯  收藏 所屬分類: 5.數(shù)據(jù)世界7.學(xué)習(xí)日志

    主站蜘蛛池模板: 亚洲中文字幕无码一区| 亚洲最大av无码网址| 亚洲人成7777影视在线观看| 精品无码国产污污污免费网站 | 久久久久久国产精品免费免费男同 | 88av免费观看入口在线| 亚洲人成电影亚洲人成9999网| 中文无码成人免费视频在线观看| 亚洲av无码一区二区乱子伦as| 久9这里精品免费视频| 337p日本欧洲亚洲大胆精品555588| 一区二区三区四区免费视频 | 四虎影视成人永久免费观看视频 | 亚洲AV无码专区在线厂| 亚洲成a人片在线观看日本麻豆 | 亚洲精华国产精华精华液好用| 国产成人一区二区三区免费视频| 高潮毛片无遮挡高清免费视频| 久久精品国产精品亚洲人人| 高清一区二区三区免费视频| 久久精品国产99国产精品亚洲| 国产色婷婷精品免费视频| 一个人看的在线免费视频| 久久久亚洲精品无码| 在线观看的免费网站| 免费国产a理论片| 国产亚洲精品va在线| 全免费毛片在线播放| 男女交性无遮挡免费视频| 亚洲免费视频在线观看| 日韩在线天堂免费观看| 中文字幕永久免费视频| 亚洲一级视频在线观看| 亚洲精品线路一在线观看| 99久久免费国产香蕉麻豆 | 免费视频一区二区| 中文字幕亚洲码在线| 在线亚洲97se亚洲综合在线| 国产1000部成人免费视频| 一级黄色片免费观看| 激情五月亚洲色图|