描述
內容簡介
AI時代Math元年 - 用Python全精通程式設計
本書旨在幫助零基礎的讀者學習Python程式設計。涵蓋了Anaconda和JupyterLab的安裝與使用,並深入介紹Python的基本語法、資料型態、常見運算、控制結構、函式以及物件導向程式設計,讓讀者能夠掌握Python的核心概念。在資料視覺化方面,本書探討了二維和三維視覺化技術,並使用Seaborn進行資料視覺化,幫助讀者將資料轉化為可視化的圖形。此外,書中詳細介紹了NumPy的使用,包括索引和切片、常見運算、陣列規整、線性代數以及愛因斯坦求和約定,這些都是進行資料分析的重要工具。 Pandas部分則著重於快速視覺化、索引和切片、時間序列資料的處理及資料規整,讓讀者能夠有效管理和分析資料。在進階視覺化和運算方面,本書介紹了Plotly的統計視覺化、SymPy的符號運算、SciPy的數學運算及Statsmodels的統計模型,這些工具能夠幫助讀者進行更複雜的資料分析。在機器學習的部分,書中探討了Scikit-Learn的應用,包括資料預處理、回歸、降維、分類和聚類等技術,讓讀者了解如何利用機器學習解決實際問題。 最後,本書還介紹了如何使用Streamlit來架設應用程式,特別是機器學習相關的Apps。整體而言,本書以實作為主,搭配Jupyter Notebook,引導讀者在動手練習中學習Python程式設計、資料分析和機器學習的基礎知識,並以圖形和口語化的方式解釋背後的數學思想。 |
作者簡介
|
目錄
第 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 高斯混合模型聚類 |
序
|