Python玩轉數學問題:輕鬆學習NumPy、SciPy和Matplotlib(簡體書)
商品資訊
系列名:清華開發者書庫.Python
ISBN13:9787302591573
出版社:清華大學出版社(大陸)
作者:張騫
出版日:2022/04/01
裝訂/頁數:平裝/417頁
規格:24cm*17cm (高/寬)
版次:一版
商品簡介
本書主要介紹如何使用Python處理數學問題。內容涉及代數、統計、概率和微積分等方面。
本書第1~4章主要講解Python編程的基本知識,第5~12章主要是介紹Python用於處理數學問題的第三方擴展庫的使用,包括NumPy、Scipy、Matplotlib和SymPy。第5章Python繪圖是後續很多章節的基礎,請讀者務必要首先熟悉這一章的內容。第6章面向物件編程主要講解什麼是面向物件的程序設計,Python是一種面向物件的程序設計語言,掌握面向物件的概念對於理解Python程序、編寫出效率更高的Python代碼會很有幫助。NumPy是Python科學計算的基礎,第7章詳細講解NumPy的使用方法。第8章的內容相對比較獨立,主要介紹Python在符號計算方面的應用。第9和第10章是關於概率統計的內容,會用到第5~7章的知識。第11章是關於分形的介紹,讀者可以了解到如何使用Python繪製分形。第12章是講解Python中的異常處理。
本書適合高等院校及培訓機構相關專業的參考用書,以及對如何使用Python處理數學問題感興趣的初學者閱讀。
作者簡介
張騫,北京航空航天大學碩士,資深軟件工程師。17年軟件開發經驗。先後在數家大型通信企業擔任高級軟件開發工程師,精通C/C++、Python語言編程。現從事數據挖掘與分析方面的研究工作,同時致力於編程技術的普及和推廣。
名人/編輯推薦
Python語言擁有豐富的針對數學的擴展庫:NumPy庫支持高維度矩陣運算,內含大量針對數組運算的函數。Matplotlib為Python語言提供了繪圖擴展;SciPy庫支持線性代數、微積分、概率統計等;SymPy庫使得Python語言能夠支持符號計算。本書從Python的基本用法到數學問題的背景、原理及實際用法等都介紹得簡明易懂。在熟悉Python的基本語法結構之後,如果能夠熟練掌握這些庫的使用方法,則在日後的工作和學習中,完全可以使用Python來處理遇到的數學問題。
序
隨著信息技術的發展,我們經常會收發電子郵件、網購、追劇、玩電子遊戲等,但這是否意味著我們非常熟悉身邊的這些新技術呢?雖然每天都要和各種各樣的數字媒體打交道,但是有能力自己創建並分享數字內容的人不多。隨著技術的進步,不遠的將來,生活在這個“數字世界”的“數字原住民”應既是消費者也是生產者。
大部分人可能認為編寫計算機程序是專業性極強的工作,是少數人才可以完成的任務。其實並非如此。學習計算機語言就好比學習一門自然語言、遊泳或者駕駛汽車,大多數人稍微花點時間便能夠掌握。
計算機語言是一種特殊形式的語言,它可以被用來定義計算機程序,向計算機發出指令。計算機科學發展至今,產生了600多種計算機語言,至今仍流行的語言有20多種,新的計算機語言也在不斷產生。它們可分為三類: 機器語言、匯編語言和高級語言。這裡“高級”僅指語言發展的階段,並不是說它的功能較前者更強。對於初學者來講,應該從高級語言入門,因為計算機高級語言接近於數學語言或人類自然語言,學習起來較為容易。
一般情況下,學習計算機編程有如下一些困難:
(1) 編程語言的語法規則晦澀難懂。
(2) 語言教程中所涉及的例子遠離我們的日常生活經驗。
因此,入門學習的計算機語言需要滿足以下兩個條件:
(1) 語法規則簡單。
(2) 學到的知識可以很快應用到實踐中。
那麼,Python能夠滿足筆者提出的這兩個條件嗎?Python的語法規則相對於C++或Java簡單,能夠滿足條件1。Python擁有豐富的內建和第三方擴展庫,因此有著豐富的應用方式,也能夠滿足條件2。在Python語言的眾多應用中,處理數學問題無疑是非常熱門和有實用價值的應用方向,因此,筆者在學習Python編程的過程中,便萌生了編寫一本書,介紹如何使用Python處理數學問題的念頭。
Python語言擁有豐富的針對數學的擴展庫: NumPy庫支持高維度矩陣運算,內含大量針對數組運算的函數; Matplotlib為Python語言提供了繪圖擴展; SciPy庫支持線性代數、微積分、概率統計等; SymPy庫使得Python語言能夠支持符號計算。在熟悉Python的基本語法結構之後,如果能夠熟練掌握這些庫的使用方法,則在日後的工作和學習中完全可以使用Python來處理遇到的數學問題。
本書首先簡要介紹了Python的基本語法,涵蓋了處理數學問題時需要用到的基本語法。接下來詳細介紹了第三方庫的使用方法。相關章節如果繼續深入,則完全可以獨立成書。特別是關於如何使用Python進行數值計算,目前已有多本非常優秀的著作或譯作出版。希望本書中的相關章節能幫助讀者熟悉如何使用Python的數值運算庫。這樣,在將來閱讀相關圖書時,可以專注於算法而不會受困於Python語法和相應庫的使用方法。
一本書的編纂並非易事。很多自以為已經掌握的概念,在編寫例程時,會突然變得很生疏。所幸,Python的世界是開放的,很多問題都能夠通過互聯網找到答案,因此,當讀者在遇到本書中未曾涉及的概念時,可以通過互聯網尋求幫助,筆者相信讀者一定能夠找到滿意的答案。由於本人能力的限制,書中難免存有舛誤,歡迎讀者指正。
要特別感謝清華大學出版社的趙佳霓編輯,她在本書的編輯過程中給予筆者大量幫助。此外,還要感謝曾慶華、韓雷、曹睿、劉亞輝,感謝他們抽出寶貴的時間通讀本書的初稿,指出錯誤並給出了修改建議。
張騫
2022年1月
目次
1.1 安裝Spyder
1.2 使用Spyder
1.3 升級Spyder
1.4 使用Spyder在線版
1.5 本章小結
第2章 用Python處理計算公式
2.1 將Python作為計算器
2.1.1 算術運算
2.1.2 關係運算
2.1.3 賦值運算
2.1.4 邏輯運算
2.1.5 位運算
2.2 編寫Python腳本
2.2.1 定義變量
2.2.2 變量名
2.2.3 變量類型
2.2.4 表達式
2.2.5 語句
2.2.6 注釋
2.2.7 格式化輸出
2.3 編程陷阱
2.4 本章小結
2.5 練習
第3章 函數與分支
3.1 使用函數
3.2 Python Math模塊
3.2.1 常數
3.2.2 算術函數
3.2.3 Math庫中其他的重要數學函數
3.3 定義函數
3.4 括號匹配
3.5 入參和局部變量
3.5.1 參數默認值
3.5.2 關鍵字參數
3.5.3 局部變量和全局變量
3.6 函數返回值
3.7 Lambda表達式
3.8 條件分支
3.9 程序驗證
3.9.1 編寫測試函數
3.9.2 使用pytest
3.10 本章小結
3.11 練習
第4章 循環
4.1 while循環
4.2 使用列表存儲數據
4.2.1 創建列表
4.2.2 列表索引
4.2.3 列表的基本操作
4.2.4 列表物件支持的方法
4.3 for循環
4.4 中止當前循環
4.5 列表推導式(list comprehension)
4.5.1 range類型
4.5.2 使用for循環填充列表
4.5.3 數列求和
4.5.4 更改列表中的元素
4.5.5 創建列表的簡便方式
4.5.6 zip()函數
4.6 嵌套列表
4.7 Spyder調試代碼
4.8 Tuples
4.9 求方程近似解
4.9.1 二分法
4.9.2 牛頓迭代法
4.10 本章小結
第5章 Python繪圖
5.1 安裝Matplotlib
5.2 繪製簡單圖形
5.3 北京、上海和廣州三地的平均溫度
5.4 繪製函數圖形
5.5 Matplotlib物件層次結構
5.5.1 Line2D物件
5.5.2 添加文本
5.5.3 多個子圖(Axes)
5.6 字典(Dictionary)類型
5.7 本章小結
5.8 練習
第6章 類和面向物件編程
6.1 代表數學公式的類
6.2 類的通用格式
6.3 受保護的類屬性
6.4 物件屬性和類屬性
6.5 特殊方法
6.5.1 __call__()
6.5.2 ___del__()
6.5.3 __str__()
6.5.4 __repr__()
6.5.5 __abs__()
6.5.6 數學運算的特殊方法
6.6 Python的類和靜態方法
6.7 如何知道類的內容
6.8 類的測試函數
6.9 類層次結構和繼承
6.10 使用OOP方法的實例
6.10.1 螺線
6.10.2 比例數
6.11 本章小結
6.12 練習
第7章 NumPy與矩陣
7.1 NumPy安裝
7.1.1 使用pip安裝
7.1.2 Linux下安裝
7.1.3 安裝驗證
7.2 NumPy數組物件
7.2.1 創建數組物件
7.2.2 修改數組形狀
7.2.3 單位矩陣
7.3 NumPy數據類型
7.3.1 基本數據類型
7.3.2 長度確定的數據類型
7.3.3 字節序
7.3.4 結構化數據
7.4 操作數組
7.4.1 數組切片和索引
7.4.2 迭代數組
7.4.3 基本運算
7.4.4 位操作
7.4.5 布爾運算
7.4.6 NumPy廣播(Broadcast)
7.4.7 數組排序
7.4.8 統計運算
7.5 用NumPy處理代數問題
7.5.1 向量化計算
7.5.2 向量和矩陣
7.5.3 用NumPy求解線性方程組
7.5.4 插值和擬合
7.6 本章小結
7.7 練習
第8章 SymPy與符號計算
8.1 安裝和升級SymPy
8.2 配置SymPy
8.3 定義符號
8.3.1 變量符號
8.3.2 數值符號
8.3.3 函數物件
8.4 符號運算
8.4.1 數的運算
8.4.2 表達式展開
8.4.3 表達式化簡
8.4.4 表達式求值
8.4.5 表達式連加
8.4.6 表達式連乘
8.4.7 因式分解
8.4.8 邏輯運算
8.5 微積分
8.5.1 極限
8.5.2 級數展開
8.5.3 微分
8.5.4 積分
8.5.5 路徑積分
8.5.6 積分變換
8.6 線性代數
8.6.1 矩陣
8.6.2 方程
8.7 繪圖
8.8 本章小結
8.9 練習
第9章 統計分析
9.1 安裝Pandas和SciPy
9.2 基本概念
9.2.1 平均值
9.2.2 加權平均值
9.2.3 調和平均值
9.2.4 幾何平均值
9.2.5 中位值
9.2.6 眾數
9.2.7 方差
9.2.8 標準差
9.2.9 偏度
9.2.10 百分位數
9.2.11 範圍
9.3 描述性統計
9.4 數據相關性
9.4.1 協方差
9.4.2 相關係數
9.5 從文件讀取數據
9.5.1 處理CSV文件
9.5.2 物件化處理數據
9.6 繪製統計圖
9.6.1 上海車牌競拍
9.6.2 上海的歷史降雨量
9.7 本章小結
9.8 練習
第10章 概率統計
主題書展
更多書展今日66折
您曾經瀏覽過的商品
購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。