《Python科學(xué)計算》以Python 3.12.1為平臺,以實際應(yīng)用為背景,通過概述與經(jīng)典應(yīng)用相結(jié)合的形式,深入淺出地介紹了Python編程基礎(chǔ)與科學(xué)計算。全書共9章,主要內(nèi)容包括魅力的Python、Python的進階、Python程序與函數(shù)、NumPy數(shù)組運算、圖形可視化、Python科學(xué)計算庫、數(shù)值計算、統(tǒng)計分析、數(shù)據(jù)讀寫與文件管理。通過本書的學(xué)習(xí),讀者可領(lǐng)略到Python簡單、易學(xué)、易讀、易維護等特點,同時感受到利用Python實現(xiàn)科學(xué)計算的普遍性與專業(yè)性。
《Python科學(xué)計算》可作為高等學(xué)校相關(guān)專業(yè)本科生和研究生的教材,也可作為相關(guān)專業(yè)科研人員、學(xué)者、工程技術(shù)人員的參考書。
本書以Python 3.12.1為平臺,以實際應(yīng)用為背景,通過概述 經(jīng)典應(yīng)用相結(jié)合的形式,深入淺出地介紹了Python編程基礎(chǔ)與科學(xué)計算,利用Python實現(xiàn)科學(xué)計算,解決實際問題。
?全面性 從各個知識點對Python進行介紹,讓讀者對Python有簡單的認識,并能使用Python。
?通俗性 不糾纏于晦澀難懂的概念,而是力求用淺顯易懂的語言引出概念,用常用的方式介紹編程、用清晰的邏輯解釋思路。
?實用性 理論與實例相結(jié)合,內(nèi)容豐富、具有實用性,幫助讀者快速領(lǐng)會知識要點。書中的實例與經(jīng)典應(yīng)用具有超強的實用性。
?易學(xué)性 提供程序代碼、教學(xué)課件等資源,獲取方式詳見前言。
科學(xué)計算是指應(yīng)用計算機處理科學(xué)研究和工程技術(shù)中所遇到的數(shù)學(xué)計算。在現(xiàn)代科學(xué)和工程技術(shù)中,經(jīng)常會遇到大量復(fù)雜的數(shù)學(xué)計算問題。這些問題用一般的計算工具來解決非常困難,而用計算機來處理卻非常容易。
在計算機出現(xiàn)之前,科學(xué)研究和工程設(shè)計主要依靠實驗或試驗提供數(shù)據(jù),計算僅處于輔助地位。計算機的迅速發(fā)展,使越來越多的復(fù)雜計算成為可能。利用計算機進行科學(xué)計算帶來了巨大的經(jīng)濟效益,同時也使科學(xué)技術(shù)本身發(fā)生了根本變化傳統(tǒng)的科學(xué)技術(shù)只包括理論和試驗兩個組成部分,使用計算機后,計算已成為同等重要的第三個組成部分。
為什么在眾多的編程語言中選擇Python進行科學(xué)計算呢?原因在于:
(1) Python是一個高層次語言,是一個結(jié)合了解釋性、編譯性、互動性和面向?qū)ο蟮哪_本語言;
(2) Python的設(shè)計具有很強的可讀性,語法結(jié)構(gòu)更有特色;
(3) 對程序員來說,社區(qū)是非常重要的,大多數(shù)程序員需要向解決過類似問題的人尋求建議,在需要人幫助時,有一個聯(lián)系緊密、互幫互助的社區(qū)至關(guān)重要,Python社區(qū)就是這樣一個社區(qū)。
本書簡單、全面地介紹了Python軟件,并利用Python實現(xiàn)了科學(xué)計算,解決了實際問題。本書編寫具有如下特點。
1. 內(nèi)容淺顯全面
本書淺顯而全面,從各個知識點對Python進行介紹,讓讀者對Python有簡單而全面的認識,并能使用Python。
2. 簡單易懂
本書不會糾纏于晦澀難懂的概念,而是力求用淺顯易懂的語言引出概念,用常用的方式介紹編程,用清晰的邏輯解釋思路。
3. 實用性強
本書理論與實例相結(jié)合,內(nèi)容豐富、實用,可幫助讀者快速領(lǐng)會知識要點。書中的實例與經(jīng)典應(yīng)用具有很強的實用性,且書中源代碼、數(shù)據(jù)集等都可免費、輕松獲得。
全書共9章。第1章魅力的Python,主要包括Python編程環(huán)境、Python基礎(chǔ)語法等內(nèi)容。第2章Python的進階,主要包括常用函數(shù)、字符串的深入學(xué)習(xí)、列表、元組等內(nèi)容。第3章Python程序與函數(shù),主要包括順序結(jié)構(gòu)、選擇結(jié)構(gòu)、函數(shù)等內(nèi)容。第4章NumPy數(shù)組運算,主要包括NumPy安裝、NumPy的基本操作、 NumPy線性代數(shù)等內(nèi)容。第5章圖形可視化,主要包括Matplotlib可視化、海龜繪圖等內(nèi)容。第6章Python科學(xué)計算庫,主要包括 Pandas科學(xué)計算庫、SciPy科學(xué)計算庫等內(nèi)容。第7章數(shù)值計算,主要包括多項式、插值、擬合、函數(shù)最小值等內(nèi)容。第8章統(tǒng)計分析,主要包括顯著性檢驗、交叉驗證、回歸分析、邏輯回歸等內(nèi)容。第9章數(shù)據(jù)讀寫與文件管理,主要包括使用pathlib模塊操作目錄、使用os.path操作目錄、打開文件、讀取文件等內(nèi)容。
隨著互聯(lián)網(wǎng)、物聯(lián)網(wǎng)對全球的覆蓋,及計算機技術(shù)的不斷提升,Python在各領(lǐng)域的應(yīng)用越來越廣泛。通過本書的學(xué)習(xí),讀者不僅可以了解Python軟件的特點,學(xué)習(xí)怎樣使用Python,還能學(xué)會利用Python解決科學(xué)計算等問題,達到學(xué)以致用。
本書由佛山大學(xué)鄧奮發(fā)編寫。
由于時間倉促,加之編者水平有限,書中錯誤和疏漏之處在所難免。在此,誠懇地期望得到各領(lǐng)域的專家和廣大讀者的批評指正。
編者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ù)學(xué)計算
1.1.6Python編輯器
1.1.7第一個Python程序
1.1.8函數(shù)和字符串
1.2Python基礎(chǔ)語法
1.2.1保留字
1.2.2注釋
1.2.3行與縮進
1.2.4多行語句
1.2.5格式化輸出
1.2.6導(dǎo)入數(shù)據(jù)
1.3變量與賦值語句
1.4運算符
1.4.1算術(shù)運算符
1.4.2比較運算符
1.4.3賦值運算符
1.4.4位運算符
1.4.5邏輯運算符
1.4.6成員運算符
1.4.7身份運算符
1.5練習(xí)
第2章Python的進階
2.1常用函數(shù)
2.1.1數(shù)據(jù)類型轉(zhuǎn)換函數(shù)
2.1.2常用數(shù)學(xué)函數(shù)
2.1.3隨機數(shù)函數(shù)
2.1.4時間函數(shù)
2.2字符串的深入學(xué)習(xí)
2.2.1字符的相關(guān)方法
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幾種常見的內(nèi)置方法
2.6集合
2.6.1集合的創(chuàng)建
2.6.2訪問集合
2.6.3不可變集合
2.7練習(xí)
第3章Python程序與函數(shù)
3.1順序結(jié)構(gòu)
3.2選擇結(jié)構(gòu)
3.2.1if 語句
3.2.2if嵌套
3.2.3match…case語句
3.3循環(huán)結(jié)構(gòu)
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練習(xí)
第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ù)函數(shù)
4.2.11NumPy統(tǒng)計函數(shù)
4.2.12排序、條件篩選
4.3NumPy線性代數(shù)
4.4NumPy IO
4.5練習(xí)
第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繪圖的基礎(chǔ)知識
5.2.2基本繪圖
5.2.3使用算法繪制圖案
5.2.4使用turtle模塊命令空間
5.2.5使用面向?qū)ο蟮暮}斃L圖
5.2.6繪制任意多邊形
5.3練習(xí)
第6章Python科學(xué)計算庫
6.1Pandas
6.1.1Pandas安裝
6.1.2Pandas快速入門
6.1.3Pandas序列
6.1.4Pandas數(shù)據(jù)結(jié)構(gòu)
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圖結(jié)構(gòu)
6.2.5SciPy積分
6.2.6最小二乘
6.2.7空間數(shù)據(jù)
6.2.8圖像處理
6.3練習(xí)
第7章數(shù)值計算
7.1多項式
7.1.1多項式的定義
7.1.2多項式構(gòu)造
7.1.3計算多項式
7.1.4多項式求解
7.1.5因式分解
7.1.6多項式展開
7.1.7分式化簡
7.1.8求導(dǎo)和求積分
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濾波器設(shè)計
7.8.1DFT特性
7.8.2最優(yōu)濾波器設(shè)計方法
7.8.3測量未知系統(tǒng)的頻率特性
7.9方程數(shù)值求解
7.9.1二分法
7.9.2不動點迭代法
7.9.3牛頓迭代法
7.10練習(xí)
第8章統(tǒng)計分析
8.1顯著性檢驗
8.1.1統(tǒng)計假設(shè)
8.1.2小樣本數(shù)據(jù)的正態(tài)性檢驗
8.1.3K-S檢驗
8.1.4方差齊性檢驗
8.1.5圖形描述相關(guān)性
8.1.6正態(tài)的相關(guān)分析
8.1.7非正態(tài)相關(guān)分析
8.1.8t檢驗
8.1.9因素方差分析
8.1.10卡方檢驗
8.2交叉驗證
8.3回歸分析
8.4邏輯回歸
8.4.1邏輯回歸原理
8.4.2邏輯回歸的應(yīng)用
8.5傅里葉變換
8.5.1傅里葉變換相關(guān)函數(shù)
8.5.2基于傅里葉變換的頻域濾波
8.5.3離散傅里葉變換
8.5.4短時傅里葉變換
8.6聚類算法
8.6.1k均值聚類算法
8.6.2向量量化
8.6.3層次聚類
8.7練習(xí)
第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輸出內(nèi)容
9.7臨時文件和臨時目錄
9.8練習(xí)
參考文獻