Python 初步瞭解科學計算和數據分析

  • 推薦自己的專欄:分享一些Python案例,將所學用出來
  • 隨着Python語言生態環境的完善,衆多科學計算和數據分析庫(例如NumPy、SciPy、Pandas、Matplotlib、IPython等),使得Python成爲科學計算和數據分析的首選語言

Python科學計算和數據分析庫簡介


科學計算和數據分析庫:

  • NumPy
    NumPy是Python數據處理的底層庫,是高性能科學計算和數據分析的基礎,許多其它科學計算庫都基於NumPy庫
  • SciPy
    SciPy是Python解決科學計算中常見問題的工具集團,其不同子模塊對應於不同的應用,包括:線性代數、插值、積分、最優化、圖像處理、統計等等
  • Pandas
    Pandas是Python的高級數據分析工具庫
  • Matplotlib
    Matplotlib是Python最流行的繪圖程序庫。Seaborn和Prettyplotlib是在Matplotlib的基礎上改進功能的繪圖程序庫
  • SciKit
    SciKit程序庫爲SciPy、NumPy和Python提供了專業化的擴展。例如,scikit-learn是用於機器學習和數據挖掘的庫
  • IPython
    IPython是基於Python Shell的交互式解釋器,功能更加強大,被廣泛應用於交互式科學計算

使用IPython Notebook進行科學計算


第一種安裝方法:如果你安裝了Python面向科學計算的環境Anaconda。安裝Anaconda時會安裝Jupyter Notebook (以前的版本也叫IPython Notebook)。

第二種安裝方法:在控制檯cmd中輸入以下命令(使用pip命令安裝)

先更新pip包

python -m pip install -U pip

然後安裝jupyter(即IPython Notebook)

python -m pip install jupyter

如果在安裝時出現這個問題:pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host=‘files.pythonhosted.org’, port=443): Read timed out.

在cmd中輸入以下命令,將超時限制修改一下

pip --default-timeout=100 install -U jupyter

Jupyter Notebook是一種交互式的數據分析與記錄工具,它既是一個交互計算平臺,又是一個記錄計算過程的“筆記本”,它是數據分析、科學計算以及交互計算的“利器

Jupyter Notebook 由服務端和客戶端兩部分組成。服務端可以運行在本機,也可以運行在遠程服務器上,它主要包含負責運算的iPython kernel, 以及一個HTTP/HTTPS服務器(Tornado) ,主要負責代碼的解釋和計算;而客戶端是瀏覽器,主要負責與用戶進行交互,接受用戶的輸入,以及渲染輸出。

Jupyter Notebook的使用示例

一:運行Jupyter Notebook

windows + R

輸入 cmd ,點擊確定

在cmd中輸入 jupyter notebook

在瀏覽器中會出現如下界面:

Jupyter Notebook的特點是支持可重複性的互動計算,即可以重複更改並且執行曾經的輸入記錄。它可以記錄演算過程,並保存成其他很多格式,例如Python腳本、HTML、PDF等。很多課程、數據和博客是用Notebook寫作的。

二:新建Notebook文件

打開Notebook,可以看到主面板。在菜單欄中有Files、Running、Clusters三個選項,用到最多的是Files

單擊如圖的“New”下拉菜單,選擇Python 3,新建一個名爲Untitled的Notebook

JupyterNotebook使用瀏覽器作爲界面,向後臺的IPython服務器發送請求,並顯示結果。在瀏覽器的界面中使用單元格(Cell) 輸入保存各種信息。

Cell主要有兩種類型:

  • Code(輸入、編輯和執行Python代碼)
  • MarkDown (輸入、編輯和顯示Markdown格式的文本)

三:輸入markdown文本

在第一個單元格輸入框中,輸入“點贊、收藏、關注”,並設置單元格的類型爲markdown

四:輸入並執行Python代碼

輸入快捷鍵B也可以在下方插入一個單元格

輸入代碼,並執行(按快捷鍵 Ctrl+Enter,或者點擊運行按鈕)

Python在線性代數中的應用


線性代數(linear algebra) 是數學的一個分支,主要研究矩陣理論、向量空間、線性變換和有限維線性方程組等內容。使用Python的科學計算庫NumPySciPy,可以進行線性代數的學習和研究。

一:創建向量和矩陣(數組)

通常使用NumPy的array函數可以創建向量和矩陣(數組)

  • 一維數組表示向量
  • 二維數組表示矩陣
  • 也可以使用函數zeroszeros_likeonesones_likeemptyempty_likearangelinspacenumpy. random.randnumpy.random.randnfromfunctionfromfile等函數創建特殊數組。

二:矩陣的運算

使用NumPy包,矩陣的加法和減法可以直接使用運算符+和一,乘法則使用函數dot

三:線性方程組的求解

已知線性方程組AX=b,則X=A-1b。 例如:

  • x + 3y + 5z = 10
  • 2x + 5y + z = 8
  • 2x + 3y + 8z = 3

則:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章