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