Python 科學計算基礎 (整理)
- 2020 年 1 月 9 日
- 筆記
Python是一種面向對象的、動態的程序設計語言,具有非常簡潔而清晰的語法,既可以用於快速開發程序腳本,也可以用於開發大規模的軟件,特別適合於完成各種高層任務。 隨着NumPy、SciPy、matplotlib、ETS等眾多程序庫的開發,Python越來越適合於做科學計算。與科學計算領域最流行的商業軟件MATLAB相比,Python是一門真正的通用程序設計語言,比MATLAB所採用的腳本語言的應用範圍更廣泛,有更多程序庫的支持,適用於Windows和Linux等多種平台,完全免費並且開放源碼。雖然MATLAB中的某些高級功能目前還無法替代,但是對於基礎性、前瞻性的科研工作和應用系統的開發,完全可以用Python來完成。 *Numba項目能夠將處理NumPy數組的Python函數JIT編譯為機器碼執行,從而上百倍的提高程序的運算速度。 *基於瀏覽器的Python開發環境wakari(http://www.continuum.io/wakari) 能省去配置Python開發環境的麻煩。hnxyzzl Zzlx.xxxxxxx *Pandas經過幾個版本周期的迭代,目前已經成為數據整理、處理、分析的不二選擇。 *OpenCV官方的擴展庫cv2已經正式出台,它的眾多圖像處理函數能直接對NumPy數組進行處理,便捷圖像處理、計算機視覺程序變得更加方便、簡潔。 *matplotlib已經擁有穩定開發社區,最新發佈的1.3版本添加了WebAgg後台繪圖庫,能在瀏覽器中顯示圖表並與之進行交互。相信不久這一功能就會集成到IPython Notebook中去。 *SymPy 0.7.3的發佈,它已經逐漸從玩具項目發展成熟。一位高中生使用在線運行SymPy代碼的網站:http://www.sympygamma.com * Cython已經內置支持NumPy數組,它已經逐漸成為編寫高效運算擴展庫的首選工具。例如Pandas中絕大部分的提速代碼都是採用Cython編寫的。 * NumPy、SciPy等也經歷了幾個版本的更新,許多計算變得更快捷,功能也更加豐富。 * WinPython、Anaconda等新興的Python集成環境無須安裝,使得共享Python程序更方便快捷。 * 隨着Python3逐漸成為主流,IPython, NumPy, SciPy, matplotlib, Pandas, Cython等主要的科學計算擴展庫也已經開始支持Python3了。
Python用於科學計算的一些常用工具和庫
- IPython-增強的交互環境:支持變量自動補全,自動縮進,支持 bash shell命令,內置了許多很有用的功能和函數
- Spyder、Wing IDE或Eclipse/Pydev:集成開發環境
- NumPy-數學計算基礎庫:N維數組、線性代數計算、傅立葉變換、隨機數等。
- SciPy-數值計算庫:線性代數、擬合與優化、插值、數值積分、稀疏矩陣、圖像處理、統計等。
- SymPy-符號運算
- Pandas-數據分析庫:數據導入、整理、處理、分析等。
- matplotlib-會圖庫:繪製二維圖形和圖表
- Chaco-交互式圖表
- OpenCV-計算機視覺庫
- TVTK-數據的三維可視化
- Cython-Python轉C的編譯器:編寫高效運算擴展庫的首選工具
- BioPython-生物科學
Python科學計算髮行版
- Python(x,y) 當前最新版本:2.7.6.1 (05/30/2014),支持Windows和Python2.7.6。 其庫索引列出了所支持的170+Python27庫。
- WinPython 當前最新版本:2.7.6.4和3.3.5.0 (04/2014),支持Windows和Python2.7.6、3.3.5。 其庫索引列出了所支持的60+Python27庫。 其庫索引列出了所支持的60+Python33庫。
- EnthoughtCanopy(Enthought Python Distribution) 當前最新版本:1.4.1 (06/11/2014),支持Linux, Windows,Mac平台和Python2.7.6。 其庫索引列出了所支持的150+測試過的Python庫。
- Anaconda 當前最新版本:2.0.1 (06/12/2014),支持Linux, Windows, Mac平台和Python2.6、2.7、3.3、3.4。 其庫索引列出了所支持的195+流行Python庫。
相關學習網址:
python基礎教程
http://www.runoob.com/python/python-tutorial.html
iptyhon學習
http://ipython.org/documentation.html
用Python做科學計算 –包括numpy scipy matplot UI 3D視圖 以及 圖表等
http://old.sebug.net/paper/books/scipydoc/index.html
http://www.scipy-lectures.org/index.html
numpy http://old.sebug.net/paper/books/scipydoc/numpy_intro.html
matplot 入門
官方: http://matplotlib.org/contents.html
博客 http://www.labri.fr/perso/nrougier/teaching/matplotlib/
博客 http://www.2cto.com/kf/201407/317115.html
使用matplotlib繪製動畫的方法
http://www.jb51.net/article/66441.htm
python科學計算第二版代碼
https://github.com/ruoyu0088/scpy2
其他: Python科學計算環境推薦——Anaconda Anaconda提供了Spyder,IPython和一個命令行。下面來看一下conda。 輸入 conda list 來看一下所有安裝時自帶的Python擴展。粗略看了一下,其中包括了常用的 Numpy , Scipy , matplotlib 和 networkx 等,以及 beautiful-soup , requests , flask , tornado 等網絡相關的擴展。 conda的repo中的擴展不算太新,如果想要更新的,可能要用PyPI或者自己下載源碼。而conda和pip關聯的很好。使用pip安裝的東西可以使用conda來管理,這點要比Canopy好。下圖是我用pip安裝的 nltk , jieba 和 gensim 科學計算環境的另一個要求就是能夠多個Python版本並存,尤其是2.x和3.x的並存。這個通過 virtualenv 可以做到。Anaconda也正是通過其實現的。