書名:AI時代Math元年 - 用Python全精通程式設計
原文書名:
產品代碼:
9786267569245系列編號:
DM2473定價:
1280元作者:
姜偉生頁數:
992頁開數:
17x23x4.32裝訂:
平裝上市日:
20241120出版日:
20241120出版社:
深智數位股份有限公司CIP:
312.2市場分類:
電腦資訊產品分類:
書籍免稅聯合分類:
電腦資訊類- ※在庫量大
商品簡介
AI時代Math元年 - 用Python全精通程式設計
本書旨在幫助零基礎的讀者學習Python程式設計。涵蓋了Anaconda和JupyterLab的安裝與使用,並深入介紹Python的基本語法、資料型態、常見運算、控制結構、函式以及物件導向程式設計,讓讀者能夠掌握Python的核心概念。在資料視覺化方面,本書探討了二維和三維視覺化技術,並使用Seaborn進行資料視覺化,幫助讀者將資料轉化為可視化的圖形。此外,書中詳細介紹了NumPy的使用,包括索引和切片、常見運算、陣列規整、線性代數以及愛因斯坦求和約定,這些都是進行資料分析的重要工具。
Pandas部分則著重於快速視覺化、索引和切片、時間序列資料的處理及資料規整,讓讀者能夠有效管理和分析資料。在進階視覺化和運算方面,本書介紹了Plotly的統計視覺化、SymPy的符號運算、SciPy的數學運算及Statsmodels的統計模型,這些工具能夠幫助讀者進行更複雜的資料分析。在機器學習的部分,書中探討了Scikit-Learn的應用,包括資料預處理、回歸、降維、分類和聚類等技術,讓讀者了解如何利用機器學習解決實際問題。
最後,本書還介紹了如何使用Streamlit來架設應用程式,特別是機器學習相關的Apps。整體而言,本書以實作為主,搭配Jupyter Notebook,引導讀者在動手練習中學習Python程式設計、資料分析和機器學習的基礎知識,並以圖形和口語化的方式解釋背後的數學思想。
AI時代Math元年 - 用Python全精通程式設計
本書旨在幫助零基礎的讀者學習Python程式設計。涵蓋了Anaconda和JupyterLab的安裝與使用,並深入介紹Python的基本語法、資料型態、常見運算、控制結構、函式以及物件導向程式設計,讓讀者能夠掌握Python的核心概念。在資料視覺化方面,本書探討了二維和三維視覺化技術,並使用Seaborn進行資料視覺化,幫助讀者將資料轉化為可視化的圖形。此外,書中詳細介紹了NumPy的使用,包括索引和切片、常見運算、陣列規整、線性代數以及愛因斯坦求和約定,這些都是進行資料分析的重要工具。
Pandas部分則著重於快速視覺化、索引和切片、時間序列資料的處理及資料規整,讓讀者能夠有效管理和分析資料。在進階視覺化和運算方面,本書介紹了Plotly的統計視覺化、SymPy的符號運算、SciPy的數學運算及Statsmodels的統計模型,這些工具能夠幫助讀者進行更複雜的資料分析。在機器學習的部分,書中探討了Scikit-Learn的應用,包括資料預處理、回歸、降維、分類和聚類等技術,讓讀者了解如何利用機器學習解決實際問題。
最後,本書還介紹了如何使用Streamlit來架設應用程式,特別是機器學習相關的Apps。整體而言,本書以實作為主,搭配Jupyter Notebook,引導讀者在動手練習中學習Python程式設計、資料分析和機器學習的基礎知識,並以圖形和口語化的方式解釋背後的數學思想。
作者簡介
姜偉生
博士FRM。勤奮的小鎮做題家,熱愛知識可視化和開源分享。自2022年8月開始,在GitHub上開源「鳶尾花書」學習資源,截至2023年9月,已經分享4000多頁PDF、4000多幅矢量圖、約2000個代碼文件,全球讀者數以萬計。
書籍目錄
第 1 篇 預備
第 1 章 聊聊「巨蟒」
1.1 Python? 巨蟒?
1.2 Python和視覺化有什麼關係?
1.3 Python和數學有什麼關係?
1.4 Python和機器學習有什麼關係?
1.5 相信「反覆+精進」的力量!
第 2 章 安裝使用Anaconda
2.1 整合式開發環境
2.2 如何安裝Anaconda?
2.3 測試JupyterLab
2.4 查看Python第三方函式庫版本編號
2.5 安裝、更新、卸載Python 第三方函式庫
第 3 章 JupyterLab,用起來!
3.1 什麼是JupyterLab?
3.2 使用JupyterLab:立刻用起來
3.3 快速鍵:這一章可能最有用的內容
3.4 什麼是LaTeX?
3.5 字母和符號
3.6 用LaTex寫公式
第 2 篇 語法
第 4 章 Python 語法,邊學邊用
4.1 Python也有語法?
4.2 註釋:不被執行,卻很重要
4.3 縮進:四個空格,標識程式區塊
4.4 變數:一個什麼都能裝的箱子
4.5 使用import匯入套件
4.6 Pythonic:Python風格
第 5 章 Python資料型態
5.1 資料型態有哪些?
5.2 數字:整數、浮點數、複數
5.3 字串:用引號定義的文字
5.4 串列:儲存多個元素的序列
5.5 其他資料型態:元組、集合、字典
5.6 矩陣、向量:線性代數概念
第 6 章 Python常見運算
6.1 幾類運算子
6.2 算術運算子
6.3 比較運算子
6.4 邏輯運算子
6.5 設定運算子
6.6 成員運算子
6.7 身份運算子
6.8 優先順序
6.9 聊聊math函式庫
6.10 聊聊random函式庫和statistics函式庫
第 7 章 Python控制結構
7.1 什麼是控制結構?
7.2 條件陳述式:相當於開關
7.3 for迴圈敘述
7.4 串列生成式
7.5 迭代器itertools
第 8 章 Python函式
8.1 什麼是Python函式?
8.2 自訂函式
8.3 更多自訂線性代數函式
8.4 遞迴函式:自己反覆呼叫自己
8.5 位置參數、關鍵字參數
8.6 使用*args 和**kwargs
8.7 匿名函式
8.8 構造模組、函式庫
8.9 模仿別人的程式
第 9 章 Python物件導向程式設計
9.1 什麼是物件導向程式設計?
9.2 定義屬性
9.3 定義方法
9.4 裝飾器
9.5 父類別、子類別
第 3 篇 繪圖
第 10 章 聊聊視覺化
10.1 解剖一幅圖
10.2 使用Matplotlib繪製線圖
10.3 圖片美化
10.4 使用Plotly繪製線圖
第 11 章 二維和三維視覺化
11.1 二維視覺化方案
11.2 二維散點圖
11.3 二維等高線圖
11.4 熱圖
11.5 三維視覺化方案
11.6 三維散點圖
11.7 三維線圖
11.8 三維網格曲面圖
11.9 三維等高線圖
11.10 箭頭圖
第 12 章 Seaborn視覺化資料
12.1 Seaborn:統計視覺化利器
12.2 一元特徵資料
12.3 二元特徵資料
12.4 多元特徵資料
第 4 篇 陣列
第 13 章 聊聊NumPy
13.1 什麼是NumPy?
13.2 手動構造陣列
13.3 生成數列
13.4 生成網格資料
13.5 特殊陣列
13.6 隨機數
13.7 陣列匯入、匯出
第 14 章 NumPy索引和切片
14.1 什麼是索引、切片?
14.2 一維陣列索引、切片
14.3 視圖vs副本
14.4 二維陣列索引、切片
第 15 章 NumPy常見運算
15.1 加、減、乘、除、乘冪
15.2 廣播原則
15.3 統計運算
15.4 常見函式
第 16 章 NumPy陣列規整
16.1 從reshape()函式說起
16.2 一維陣列→行向量、列向量
16.3 一維陣列→二維陣列
16.4 一維陣列→三維陣列
16.5 視圖vs副本
16.6 轉置
16.7 扁平化
16.8 旋轉、翻轉
16.9 堆疊
16.10 重複
16.11 分塊矩陣
第 17 章 NumPy線性代數
17.1 NumPy的linalg模組
17.2 拆解矩陣
17.3 向量運算
17.4 矩陣運算
17.5 幾個常見矩陣分解
第 18 章 NumPy愛因斯坦求和約定
18.1 什麼是愛因斯坦求和約定?
18.2 二維陣列求和
18.3 轉置
18.4 矩陣乘法
18.5 一維陣列
18.6 方陣
18.7 統計運算
第 5 篇 資料
第 19 章 聊聊Pandas
19.1 什麼是Pandas?
19.2 建立資料幀:從字典、串列、NumPy 陣列⋯⋯
19.3 資料幀操作:以鳶尾花資料為例
19.4 四則運算:各列之間
19.5 統計運算:聚合、降維、壓縮、折疊⋯⋯
19.6 時間序列:按時間順序排列的資料
第 20 章 Pandas快速視覺化
20.1 Pandas的視覺化功能
20.2 線圖:pandas.DataFrame.plot()
20.3 散點圖
20.4 柱狀圖
20.5 箱型圖
20.6 長條圖和核心密度估計曲線
第 21 章 Pandas索引和切片
21.1 資料幀的索引和切片
21.2 提取特定列
21.3 提取特定行
21.4 提取特定元素
21.5 條件索引
21.6 多層索引
21.7 時間序列資料幀索引和切片
第 22 章 Pandas規整
22.1 Pandas資料幀規整
22.2 拼接:pandas.concat()
22.3 合併:pandas.join()
22.4 合併:pandas.merge()
22.5 長格式轉為寬格式:pivot()
22.6 寬格式轉為長格式:stack()
22.7 長格式轉為寬格式:unstack()
22.8 分組聚合:groupby()
22.9 自訂操作:apply()
第 23 章 Plotly統計視覺化
23.1 Plotly常見視覺化方案:以鳶尾花資料為例
23.2 增加一組分類標籤
23.3 兩組標籤:兩個維度
23.4 視覺化比例:柱狀圖、圓形圖
23.5 鑽取:多個層次之間的導覽和探索
23.6 太陽爆炸圖:展示層次結構
23.7 增加第三切割維度
23.8 平均值的鑽取:全集vs子集
第 24 章 Pandas時間序列資料
24.1 什麼是時間序列?
24.2 遺漏值:用NaN表示
24.3 移動平均:一種平滑技術
24.4 收益率:相對漲跌
24.5 統計分析:平均值、波動率等
24.6 相關性:也可以隨時間變化
第 6 篇 數學
第 25 章 SymPy符號運算
25.1 什麼是SymPy?
25.2 代數
25.3 線性代數
第 26 章 SciPy數學運算
26.1 什麼是SciPy?
26.2 距離
26.3 插植
26.4 高斯分佈
第 27 章 Statsmodels統計模型
27.1 什麼是Statsmodels?
27.2 二維散點圖+橢圓
27.3 最小平方線性回歸
27.4 主成分分析
27.5 機率密度估計:高斯KDE
第 7 篇 機器學習
第 28 章 Scikit-Learn機器學習
28.1 什麼是機器學習?
28.2 有標籤資料、無標籤資料
28.3 回歸:找到引數與因變數關係
28.4 降維:降低資料維度,提取主要特徵
28.5 分類:針對有標籤資料
28.6 聚類:針對無標籤資料
28.7 什麼是Scikit-Learn?
第 29 章 Scikit-Learn資料
29.1 Scikit-Learn中有關資料的工具
29.2 樣本資料集
29.3 生成樣本資料
29.4 特徵縮放
29.5 處理遺漏值
29.6 處理離群值
29.7 訓練集vs測試集
第 30 章 Scikit-Learn回歸
30.1 聊聊回歸
30.2 一元線性回歸
30.3 二元線性回歸
30.4 多項式回歸
30.5 正規化:抑制過度擬合
第 31 章 Scikit-Learn降維
31.1 降維
31.2 主成分分析
31.3 兩特徵PCA
31.4 三特徵PCA
第 32 章 Scikit-Learn分類
32.1 什麼是分類?
32.2 k最近鄰分類:近朱者赤,近墨者黑
32.3 高斯單純貝氏分類:貝氏定理的應用
32.4 支援向量機:間隔最大化
32.5 核心技巧:資料映射到高維空間
第 33 章 Scikit-Learn聚類
33.1 聚類
33.2 K平均值聚類
33.3 高斯混合模型
第 8 篇 應用
第 34 章 了解一下Spyder
34.1 什麼是Spyder?
34.2 Spyder用起來
34.3 快速鍵:這章可能最有用的內容
第 35 章 Streamlit架設Apps
35.1 什麼是Streamlit?
35.2 顯示
35.3 視覺化
35.4 輸入工具
35.5 App版面配置
第 36 章 Streamlit架設機器學習Apps
36.1 架設應用App:程式設計+數學+視覺化+機器學習
36.2 一元高斯分佈
36.3 二元高斯分佈
36.4 三元高斯分佈
36.5 多項式回歸
36.6 主成分分析
36.7 k最近鄰分類
36.8 支援向量機+高斯核心
36.9 高斯混合模型聚類
推薦序/導讀/自序
序言
感謝
首先感謝大家的信任。
作者僅是在學習應用資料科學和機器學習演算法時,多讀了幾本數學書,多做了一些思考和知識 整理而已。知者不言,言者不知。知者不博,博者不知。由於作者水準有限,斗膽把自己所學所思與大家分享,作者權當無知者無畏。希望大家在Github 多提意見,讓這套書成為作者和 讀者共同參與創作的作品。
特別感謝清華大學出版社的欒大成老師。從選題策劃、內容創作到裝幀設計,欒老師事無巨細、一路陪伴。每次與欒老師交流,都能感受到他對優質作品的追求、對知識分享的熱情。
出來混總是要還的
曾幾何時,考試是我們學習數學的唯一動力。考試是頭懸樑的繩,是錐刺股的錐。我們中的大多數人從小到大為各種考試埋頭題海,數學味同嚼蠟,甚至讓人恨之入骨。
數學所帶來了無盡的「折磨」。我們甚至恐懼數學,憎恨數學,恨不得一走出校門就把數學拋之腦後,老死不相往來。
可悲可笑的是,我們很多人可能會在畢業的五年或十年以後,因為工作需要,不得不重新學習微積分、線性代數、機率統計,悔恨當初沒有學好數學,甚至遷怒於教材和老師。
這一切不能都怪數學,值得反思的是我們學習數學的方法和目的。
再給自己一個學數學的理由
為考試而學數學,是被逼無奈的舉動。而為數學而數學,則又太過高尚而遙不可及。
相信對絕大部分的我們來說,數學是工具、是謀生手段,而非目的。我們主動學數學,是想用數學工具解決具體問題。
現在,這套書給大家一個「學數學、用數學」的全新動力– 資料科學、機器學習。
資料科學和機器學習已經深度融合到我們生活的各方面,而數學正是開啟未來大門的鑰匙。不是所有人生來都握有一副好牌,但是掌握「數學 + 程式設計 + 機器學習」的知識絕對是王牌。這次,學習數學不再是為了考試、分數、升學,而是投資時間、自我實現、面向未來。
未來已來,你來不來?
本書如何幫到你
為了讓大家學數學、用數學,甚至愛上數學,作者可謂頗費心機。在創作這套書時,作者儘量克服傳統數學教材的各種弊端,讓大家學習時有興趣、看得懂、有思考、更自信、用得著。
為此,叢書在內容創作上突出以下幾個特點。
■ 數學 + 藝術——全彩圖解,極致視覺化,讓數學思想躍然紙上、生動有趣、一看就懂,同時提高大家的資料思維、幾何想像力、藝術感。
■ 零基礎——從零開始學習 Python 程式設計,從寫第一行程式到架設資料科學和機器學習應用,儘量將陡峭學習曲線拉平。
■ 知識網路——打破數學板塊之間的門檻,讓大家看到數學代數、幾何、線性代數、微積分、機率統計等板塊之間的聯繫,編織一張綿密的數學知識網路。
■ 動手——授人以魚不如授人以漁,和大家一起寫程式、創作數學動畫、互動App。
■ 學習生態——建構自主探究式學習生態環境「紙質圖書 + 程式檔案 + 視覺化工具+ 思維導圖」,提供各種優質學習資源。
■ 理論 + 實踐——從加減乘除到機器學習,叢書內容安排由淺入深、螺旋上升,兼顧理論和實踐;在程式設計中學習數學,學習數學時解決實際問題。
雖然本書標榜「從加減乘除到機器學習」,但是建議讀者朋友們至少具備高中數學知識。如果讀者正在學習或曾經學過大學數學(微積分、線性代數、機率統計),這套書就更容易讀懂了。
聊聊數學
數學是工具。錘子是工具,剪刀是工具,數學也是工具。
數學是思想。數學是人類思想高度抽象的結晶體。在其冷酷的外表之下,數學的核心實際上就是人類樸素的思想。學習數學時,知其然,更要知其所以然。不要死記硬背公式定理,理解背後的數學思想才是關鍵。如果你能畫一幅圖、用大白話描述清楚一個公式、一則定理,這就說明你真正理解了它。
數學是語言。就好比世界各地不同種族有自己的語言,數學則是人類共同的語言和邏輯。數學這門語言極其精準、高度抽象,放之四海而皆準。雖然我們中大多數人沒有被數學「女神 」選中,不能為人類對數學認知開疆擴土;但是,這絲毫不妨礙我們使用數學這門語言。就好比,我們不會成為語言學家,我們完全可以使用母語和外語交流。
數學是系統。代數、幾何、線性代數、微積分、機率統計、最佳化方法等,看似一個個孤島,實際上都是數學網路的一條條織線。建議大家學習時,特別關注不同數學板塊之間的聯繫,見樹,更要見林。
數學是基石。拿破崙曾說「數學的日臻完善和國強民富息息相關。」數學是科學進步的根基,是經濟繁榮的支柱,是保家衛國的武器,是探索星辰大海的航船。
數學是藝術。數學和音樂、繪畫、建築一樣,都是人類藝術體驗。透過視覺化工具,我們會在看似枯燥的公式、定理、資料背後,發現數學之美。
數學是歷史,是人類共同記憶體。「歷史是過去,又屬於現在,同時在指引未來。」數學是人類的集體學習思考,它把人的思維符號化、形式化,進而記錄、累積、傳播、創新、發展。從甲骨、泥板、石板、竹簡、木牘、紙草、羊皮卷冊、活字印刷、紙質書,到數字媒介,這一過程持續了數千年,至今綿延不息。
數學是無窮無盡的想像力,是人類的好奇心,是自我挑戰的毅力,是一個接著一個的問題,是看似荒誕不經的猜想,是一次次膽大包天的批判性思考,是敢於站在前人臂膀之上的勇氣,是孜孜不倦地延展人類認知邊界的不懈努力。
家園、詩、遠方
諾瓦利斯曾說:「哲學就是懷著一種鄉愁的衝動到處去尋找家園。」
在紛繁複雜的塵世,數學純粹得就像精神的世外桃源。數學是,一束光,一條巷,一團不滅的希望,一股磅?的力量,一個值得寄託的避風港。
打破陳腐的鎖鏈,把功利心暫放一邊,我們一道懷揣一分鄉愁,心存些許詩意,踩著藝術維度,投入數學張開的臂膀,駛入它色彩斑斕、變幻無窮的深港,感受久違的歸屬,一睹更美、更好的遠方。
本書主要內容
第1章探討Python與視覺化、數學、機器學習之間的關係,接著第2章介紹如何安裝和使用Anaconda,最後第3章則講解JupyterLab的使用,強調其在探究式學習中的重要性,並介紹如何在Markdown中使用LaTeX撰寫數學表達。第4章介紹基礎概念,並簡單提及自訂函式和控制結構。第5章講解常用資料型態,並簡介NumPy陣列和Pandas資料幀。第6章介紹常見運算,並講解math、random和statistics函式庫。第7章著重於控制結構的應用,並實現線性代數運算。第8章介紹自訂函式和匿名函式,並講解如何構造模組。第9章簡介物件導向程式設計的基本概念。第10章講解圖的基本組成元素及繪製線圖,第11章介紹各種二維和三維視覺化方案,第12章則專注於用Seaborn進行統計描述。
第13章講解基本概念,接著第14章介紹索引和切片,第15章涵蓋常見運算及廣播原則,第16章介紹規整方法,第17章簡單介紹線性代數工具,第18章則介紹愛因斯坦求和約定。第19章講解資料幀的操作,第20章介紹快速視覺化函式,第21章講解索引和切片,第22章則介紹規整方法,第23章展示Pandas與Plotly結合的視覺化方案,第24章講解時間序列資料操作。第25章介紹符號計算,第26章講解SciPy的應用,第27章則介紹線性回歸和主成分分析。第28章簡述基本概念,第29章介紹資料集的處理,第30至33章分別講解回歸、降維、分類和聚類問題。第34章介紹Spyder的使用,第35章講解如何用Streamlit架設應用,最後第36章總結本書所學的各種Python工具並展示應用實例。