日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

《Python 数据科学实践指南》读书笔记

發布時間:2024/3/13 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Python 数据科学实践指南》读书笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 全書總評
  • C01.Python 介紹
    • Python 版本
    • Python 解釋器
    • Python 之禪
  • C02.Python 基礎知識
    • 基礎知識
    • 流程控制:
    • 函數及異常
      • 函數:
      • 異常
    • 字符串
      • 獲取鍵盤輸入:
      • 字符串處理
      • 字符串操作
      • 正則表達式
  • C05. 容器(Container)與集合(Collections)
    • 元組(Tuple)
    • 列表(List)
    • 字典(Dictionary)
    • 集合(Collections)
  • C06.Python 標準庫
    • 數學模塊:math
    • 時間模塊:time,datetime,calendar
    • 隨機數模塊:random
    • 取樣:
    • 文件處理:glob 和 fileinput
    • 壓縮:bz2 和 gzip
    • 漂亮打印:pprint 模塊
    • 跟蹤異常日志:traceback 模塊
    • 網絡數據傳輸:JSON
  • C07. 用 Python 讀寫外部數據
    • CSV,csv 模塊
    • Excel,pandas 模塊(參考 C10)
    • MySQL,MySQLdb 模塊,torndb 模塊
    • PostgreSQL,psycopg2 模塊
    • MongoDB,pymongo 模塊
    • ElasticSearch,elasticsearch 模塊
  • C08. 用 Python 解決統計問題
    • 描述性統計
    • 數據可視化
  • C09. 爬蟲入門
    • request 模塊
    • Xpath 模塊
  • C10. 數據科學的第三方庫
    • Numpy 模塊
  • 從這里開始,先棄了,這本書適合了解了以后,再來根據作者的實踐角度查遺補缺。
    • Pandas 模塊
    • Scikit-Learn 模塊
    • C11. 圖數據分析
    • 圖論基礎
    • NetworkX 模塊
    • 利用 NetworkX 進行圖分析
  • C12. 大數據工具
    • Hadoop
    • Spark

全書總評

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

C01.Python 介紹

Python 版本

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

Python 解釋器

  • Python是開源的,因此它的解釋器有許多種實現,主流的是官方的解釋器;

Python 之禪

  • import this

C02.Python 基礎知識

基礎知識

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

流程控制:

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

函數及異常

函數:

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

異常

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

字符串

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

獲取鍵盤輸入:

  • input(str):

字符串處理

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

字符串操作

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

正則表達式

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

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

元組(Tuple)

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

列表(List)

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

字典(Dictionary)

  • 字典在其他語言中被稱為散列表,由 key:value 對通過{}組成的無序結構。
  • 常用的函數:
    • get(key):通過 key 取得對應的 value;還可以通過鏈式調用取值;
    • dict(list):構建新的字典;
    • dict.keys():獲取字典的 keys 迭代;
    • dict.values():獲取字典的 values 迭代;
    • dict.items():獲取字典的 key:value 對的迭代;
    • dict.pop(key):取出指定關鍵字的值;
    • dict.update(key):更新字典中對應的 key 中的 value;

集合(Collections)

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

C06.Python 標準庫

數學模塊:math

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

時間模塊:time,datetime,calendar

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

隨機數模塊:random

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

取樣:

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

文件處理:glob 和 fileinput

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

壓縮:bz2 和 gzip

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

漂亮打印:pprint 模塊

跟蹤異常日志:traceback 模塊

網絡數據傳輸:JSON

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

C07. 用 Python 讀寫外部數據

CSV,csv 模塊

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

Excel,pandas 模塊(參考 C10)

  • pandas.read_excel():讀取文件;
  • pandas.to_excel():寫入文件;
  • pandas.set_option():設置屬性值;
  • pandas.DataFrame():表格結構;

MySQL,MySQLdb 模塊,torndb 模塊

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

PostgreSQL,psycopg2 模塊

MongoDB,pymongo 模塊

ElasticSearch,elasticsearch 模塊

C08. 用 Python 解決統計問題

  • pandas 模塊許多函數發生了改變;在 Python 3.7 下 read_excel() 運行有問題;統計都沒辦法測試了。

描述性統計

  • 均值:
  • 中位數:
  • 方差:
  • 標準差:

數據可視化

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

C09. 爬蟲入門

request 模塊

  • HTTP 協議:
  • 獲取 HTML 內容:

Xpath 模塊

  • 解析 HTML 內容:
  • 這個模塊已經沒有匹配 Python3.7 的版本了,放棄這個學習。

C10. 數據科學的第三方庫

Numpy 模塊

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

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

Pandas 模塊

Scikit-Learn 模塊

C11. 圖數據分析

圖論基礎

NetworkX 模塊

利用 NetworkX 進行圖分析

C12. 大數據工具

Hadoop

Spark

轉載于:https://www.cnblogs.com/zhuyx/p/10557911.html

總結

以上是生活随笔為你收集整理的《Python 数据科学实践指南》读书笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。