《Python科學計算》以Python 3.12.1為平臺,以實際應用為背景,通過概述與經(jīng)典應用相結合的形式,深入淺出地介紹了Python編程基礎與科學計算。全書共9章,主要內容包括魅力的Python、Python的進階、Python程序與函數(shù)、NumPy數(shù)組運算、圖形可視化、Python科學計算庫、數(shù)值計算、統(tǒng)計分析、數(shù)據(jù)讀寫與文件管理。通過本書的學習,讀者可領略到Python簡單、易學、易讀、易維護等特點,同時感受到利用Python實現(xiàn)科學計算的普遍性與專業(yè)性。
《Python科學計算》可作為高等學校相關專業(yè)本科生和研究生的教材,也可作為相關專業(yè)科研人員、學者、工程技術人員的參考書。
本書以Python 3.12.1為平臺,以實際應用為背景,通過概述 經(jīng)典應用相結合的形式,深入淺出地介紹了Python編程基礎與科學計算,利用Python實現(xiàn)科學計算,解決實際問題。
?全面性 從各個知識點對Python進行介紹,讓讀者對Python有簡單的認識,并能使用Python。
?通俗性 不糾纏于晦澀難懂的概念,而是力求用淺顯易懂的語言引出概念,用常用的方式介紹編程、用清晰的邏輯解釋思路。
?實用性 理論與實例相結合,內容豐富、具有實用性,幫助讀者快速領會知識要點。書中的實例與經(jīng)典應用具有超強的實用性。
?易學性 提供程序代碼、教學課件等資源,獲取方式詳見前言。
科學計算是指應用計算機處理科學研究和工程技術中所遇到的數(shù)學計算。在現(xiàn)代科學和工程技術中,經(jīng)常會遇到大量復雜的數(shù)學計算問題。這些問題用一般的計算工具來解決非常困難,而用計算機來處理卻非常容易。
在計算機出現(xiàn)之前,科學研究和工程設計主要依靠實驗或試驗提供數(shù)據(jù),計算僅處于輔助地位。計算機的迅速發(fā)展,使越來越多的復雜計算成為可能。利用計算機進行科學計算帶來了巨大的經(jīng)濟效益,同時也使科學技術本身發(fā)生了根本變化傳統(tǒng)的科學技術只包括理論和試驗兩個組成部分,使用計算機后,計算已成為同等重要的第三個組成部分。
為什么在眾多的編程語言中選擇Python進行科學計算呢?原因在于:
(1) Python是一個高層次語言,是一個結合了解釋性、編譯性、互動性和面向對象的腳本語言;
(2) Python的設計具有很強的可讀性,語法結構更有特色;
(3) 對程序員來說,社區(qū)是非常重要的,大多數(shù)程序員需要向解決過類似問題的人尋求建議,在需要人幫助時,有一個聯(lián)系緊密、互幫互助的社區(qū)至關重要,Python社區(qū)就是這樣一個社區(qū)。
本書簡單、全面地介紹了Python軟件,并利用Python實現(xiàn)了科學計算,解決了實際問題。本書編寫具有如下特點。
1. 內容淺顯全面
本書淺顯而全面,從各個知識點對Python進行介紹,讓讀者對Python有簡單而全面的認識,并能使用Python。
2. 簡單易懂
本書不會糾纏于晦澀難懂的概念,而是力求用淺顯易懂的語言引出概念,用常用的方式介紹編程,用清晰的邏輯解釋思路。
3. 實用性強
本書理論與實例相結合,內容豐富、實用,可幫助讀者快速領會知識要點。書中的實例與經(jīng)典應用具有很強的實用性,且書中源代碼、數(shù)據(jù)集等都可免費、輕松獲得。
全書共9章。第1章魅力的Python,主要包括Python編程環(huán)境、Python基礎語法等內容。第2章Python的進階,主要包括常用函數(shù)、字符串的深入學習、列表、元組等內容。第3章Python程序與函數(shù),主要包括順序結構、選擇結構、函數(shù)等內容。第4章NumPy數(shù)組運算,主要包括NumPy安裝、NumPy的基本操作、 NumPy線性代數(shù)等內容。第5章圖形可視化,主要包括Matplotlib可視化、海龜繪圖等內容。第6章Python科學計算庫,主要包括 Pandas科學計算庫、SciPy科學計算庫等內容。第7章數(shù)值計算,主要包括多項式、插值、擬合、函數(shù)最小值等內容。第8章統(tǒng)計分析,主要包括顯著性檢驗、交叉驗證、回歸分析、邏輯回歸等內容。第9章數(shù)據(jù)讀寫與文件管理,主要包括使用pathlib模塊操作目錄、使用os.path操作目錄、打開文件、讀取文件等內容。
隨著互聯(lián)網(wǎng)、物聯(lián)網(wǎng)對全球的覆蓋,及計算機技術的不斷提升,Python在各領域的應用越來越廣泛。通過本書的學習,讀者不僅可以了解Python軟件的特點,學習怎樣使用Python,還能學會利用Python解決科學計算等問題,達到學以致用。
本書由佛山大學鄧奮發(fā)編寫。
由于時間倉促,加之編者水平有限,書中錯誤和疏漏之處在所難免。在此,誠懇地期望得到各領域的專家和廣大讀者的批評指正。
編者2024年8月
第1章魅力的Python
1.1Python編程環(huán)境
1.1.1Python安裝
1.1.2pip安裝第三方庫
1.1.3編譯器Jupyter
1.1.4IDLE環(huán)境
1.1.5數(shù)學計算
1.1.6Python編輯器
1.1.7第一個Python程序
1.1.8函數(shù)和字符串
1.2Python基礎語法
1.2.1保留字
1.2.2注釋
1.2.3行與縮進
1.2.4多行語句
1.2.5格式化輸出
1.2.6導入數(shù)據(jù)
1.3變量與賦值語句
1.4運算符
1.4.1算術運算符
1.4.2比較運算符
1.4.3賦值運算符
1.4.4位運算符
1.4.5邏輯運算符
1.4.6成員運算符
1.4.7身份運算符
1.5練習
第2章Python的進階
2.1常用函數(shù)
2.1.1數(shù)據(jù)類型轉換函數(shù)
2.1.2常用數(shù)學函數(shù)
2.1.3隨機數(shù)函數(shù)
2.1.4時間函數(shù)
2.2字符串的深入學習
2.2.1字符的相關方法
2.2.2查找、替換方法
2.2.3分割、連接方法
2.3列表
2.3.1創(chuàng)建列表
2.3.2訪問列表中的值
2.3.3更新列表
2.3.4刪除列表
2.3.5列表分片
2.4元組
2.4.1元組的創(chuàng)建
2.4.2元組的訪問
2.4.3更新元組
2.4.4刪除元組
2.5字典
2.5.1字典的訪問
2.5.2幾種常見的內置方法
2.6集合
2.6.1集合的創(chuàng)建
2.6.2訪問集合
2.6.3不可變集合
2.7練習
第3章Python程序與函數(shù)
3.1順序結構
3.2選擇結構
3.2.1if 語句
3.2.2if嵌套
3.2.3match…case語句
3.3循環(huán)結構
3.3.1while循環(huán)
3.3.2for循環(huán)
3.3.3range()函數(shù)
3.3.4break語句
3.3.5continue語句
3.3.6pass語句
3.3.7return語句
3.4函數(shù)
3.4.1定義一個函數(shù)
3.4.2自定義函數(shù)實現(xiàn)
3.5lambda函數(shù)
3.5.1使用匿名函數(shù)
3.5.2lambda函數(shù)常用方法
3.6日期時間
3.7練習
第4章NumPy數(shù)組運算
4.1NumPy安裝
4.2NumPy基本操作
4.2.1NumPy初識
4.2.2NumPy數(shù)據(jù)類型
4.2.3NumPy創(chuàng)建數(shù)組
4.2.4NumPy切片和索引
4.2.5數(shù)組重塑
4.2.6數(shù)組迭代
4.2.7數(shù)組連接
4.2.8數(shù)組拆分
4.2.9數(shù)組搜索
4.2.10算術函數(shù)
4.2.11NumPy統(tǒng)計函數(shù)
4.2.12排序、條件篩選
4.3NumPy線性代數(shù)
4.4NumPy IO
4.5練習
第5章圖形可視化
5.1Matplotlib可視化
5.1.1安裝Matplotlib
5.1.2Matplotlib Pyplot
5.1.3繪制多子圖
5.1.4散點圖
5.1.5柱形圖
5.1.6餅圖
5.1.7直方圖
5.1.8圖像顯示與保存
5.1.9讀取圖像
5.2海龜繪圖
5.2.1turtle繪圖的基礎知識
5.2.2基本繪圖
5.2.3使用算法繪制圖案
5.2.4使用turtle模塊命令空間
5.2.5使用面向對象的海龜繪圖
5.2.6繪制任意多邊形
5.3練習
第6章Python科學計算庫
6.1Pandas
6.1.1Pandas安裝
6.1.2Pandas快速入門
6.1.3Pandas序列
6.1.4Pandas數(shù)據(jù)結構
6.1.5Pandas統(tǒng)計函數(shù)
6.1.6Pandas數(shù)據(jù)清洗
6.2SciPy
6.2.1安裝SciPy
6.2.2優(yōu)化器
6.2.3稀疏矩陣
6.2.4圖結構
6.2.5SciPy積分
6.2.6最小二乘
6.2.7空間數(shù)據(jù)
6.2.8圖像處理
6.3練習
第7章數(shù)值計算
7.1多項式
7.1.1多項式的定義
7.1.2多項式構造
7.1.3計算多項式
7.1.4多項式求解
7.1.5因式分解
7.1.6多項式展開
7.1.7分式化簡
7.1.8求導和求積分
7.2插值
7.2.1一維插值
7.2.2二維插值
7.2.3樣條插值
7.2.4徑向基函數(shù)插值
7.3擬合
7.3.1多項式擬合
7.3.2最小二乘擬合
7.4最小值與逆運算
7.5非線性方程組求解
7.6B-Spline樣條曲線插值
7.7解常微分方程組
7.8濾波器設計
7.8.1DFT特性
7.8.2最優(yōu)濾波器設計方法
7.8.3測量未知系統(tǒng)的頻率特性
7.9方程數(shù)值求解
7.9.1二分法
7.9.2不動點迭代法
7.9.3牛頓迭代法
7.10練習
第8章統(tǒng)計分析
8.1顯著性檢驗
8.1.1統(tǒng)計假設
8.1.2小樣本數(shù)據(jù)的正態(tài)性檢驗
8.1.3K-S檢驗
8.1.4方差齊性檢驗
8.1.5圖形描述相關性
8.1.6正態(tài)的相關分析
8.1.7非正態(tài)相關分析
8.1.8t檢驗
8.1.9因素方差分析
8.1.10卡方檢驗
8.2交叉驗證
8.3回歸分析
8.4邏輯回歸
8.4.1邏輯回歸原理
8.4.2邏輯回歸的應用
8.5傅里葉變換
8.5.1傅里葉變換相關函數(shù)
8.5.2基于傅里葉變換的頻域濾波
8.5.3離散傅里葉變換
8.5.4短時傅里葉變換
8.6聚類算法
8.6.1k均值聚類算法
8.6.2向量量化
8.6.3層次聚類
8.7練習
第9章數(shù)據(jù)讀寫與文件管理
9.1使用pathlib模塊操作目錄
9.1.1PurePath的基本功能
9.1.2Path的功能和用法
9.2使用os.path操作目錄
9.3使用fnmatch處理文件名匹配
9.4打開文件
9.5讀取文件
9.5.1按字節(jié)或字符讀取
9.5.2按行讀取
9.5.3讀取多個輸入流
9.5.4迭代器
9.5.5with語句使用
9.5.6linecache隨機讀取文件指定行
9.6寫文件
9.6.1文件指針的概念
9.6.2輸出內容
9.7臨時文件和臨時目錄
9.8練習
參考文獻