當前位置:
首頁 > 最新 > python數值計算擴展——NumPy

python數值計算擴展——NumPy

一、NumPy簡介

NumPy系統是Python的一種開源的數值計算擴展。這種工具可用來存儲和處理大型矩陣,比Python自身的嵌套列表(nested list structure)結構要高效的多(該結構也可以用來表示矩陣(matrix))。

以下為官方英文介紹:

NumPy is the fundamental package for scientific computing with Python. It contains among other things:

(1)a powerful N-dimensional array object

(2)sophisticated (broadcasting) functions

(3)tools for integrating C/C++ and Fortran code

(4)useful linear algebra, Fourier transform, and random number capabilities

Besides its obvious scientific uses, NumPy can also be used as an efficient multi-dimensional container of generic data. Arbitrary data-types can be defined. This allows NumPy to seamlessly and speedily integrate with a wide variety of databases.

二、python環境注意事項

目前python3使用也比較多,有的同學可能安裝了兩個版本,包括python2,Mac 在終端中輸入python命令後,輸出的信息還是Python 2.7。

如何讓系統默認使用python3呢?按照以下步驟設置即可:

(1) 終端輸入:open ~/.bash_profile,打開.bash_profile文件。

(2)修改.bash_profile文件內容 ,添加如下兩行PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:$"

export PATH

(4)重新生效.bash_profile文件

source .bash_profile

經過以上四步,終端輸入phtyon,出現以下內容即修改成功。

三、NumPy安裝

配置好python環境後,在命令行輸入:from numpy import*,如果提示以下錯誤,我們需要手動安裝NumPy:

(1)pip安裝

我們使用pip安裝NumPy,前提是已經安裝pip,mac默認是沒有安裝pip的。

如果用的是macOS自帶的python2.7,直接終端輸入:sudo easy_install pip,安裝。

如果使用的Python3,終端輸入:curlhttps://bootstrap.pypa.io/get-pip.pypython3。

安裝完成後,查看pip的版本和路徑。由於我分別安裝了python2和3,所以也分別安裝了pip的不同版本,如下:

注意:

1)使用pip install XXX

新安裝的庫會放在這個目錄下面

python2.7/site-packages

2)使用pip3 install XXX

新安裝的庫會放在這個目錄下面

python3.6/site-packages

在使用python3執行程序,那麼就不能import python2.7/site-packages中的庫。

(2)安裝NumPy

終端輸入:sudo pip3 install -U numpy

安裝成功輸出以下log:

四、NumPy使用

(1)基礎

NumPy的主要對象是同類型的多維數組。它是一張表,所有元素(通常是數字)的類型都相同,並通過正整數元組索引。在NumPy中,維度稱為軸。軸的數目為rank。

例如,3D空間中的點的坐標[1, 2, 1]是rank為1的數組,因為它具有一個軸。該軸的長度為3。在下圖所示的示例中,數組的rank為2(它是2維的)。第一維度(軸)的長度為2,第二維度的長度為3。

[[ 1., 0., 0.],

[ 0., 1., 2.]]

NumPy的數組的類稱為ndarray。別名為array。請注意,numpy.array與標準Python庫的類array.array不同,後者僅處理一維數組並提供較少的功能。ndarray對象的更重要的屬性是:

ndarray.ndim

數組的軸(維度)的個數。在Python世界中,維度的數量被稱為rank。

ndarray.shape

數組的維度。這是一個整數的元組,表示每個維度中數組的大小。對於具有n行和m列的矩陣,shape將是(n,m)。因此,shape元組的長度就是rank或維度的個數ndim。

ndarray.size

數組元素的總數。這等於shape的元素的乘積。

ndarray.dtype

描述數組中元素類型的對象。可以使用標準Python類型創建或指定dtype。另外NumPy提供了自己的類型。例如numpy.int32、numpy.int16和numpy.float64。

ndarray.itemsize

數組中每個元素的位元組大小。例如,元素為float64類型的數組的itemsize為8(=64/8),而complex32類型的數組的comitemsize為4(=32/8)。它等於ndarray.dtype.itemsize。

ndarray.data

該緩衝區包含數組的實際元素。通常,我們不需要使用此屬性,因為我們將使用索引訪問數組中的元素。

舉例說明:

對應輸出如下:

(2)數組創建

有幾種方法來創建數組,可以使用array函數從常規Python列表或元組中創建數組。得到的數組的類型從序列中元素的類型推導出。

(3)數組列印

當你列印一個數組,NumPy以類似嵌套列表的形式顯示它,但是呈以下布局:

最後的軸從左到右列印

次後的軸從頂向下列印

剩下的軸從頂向下列印,每個切片通過一個空行與下一個隔開

一維數組被列印成行,二維數組成矩陣,三維數組成矩陣列表。

(4)數組運算

數組上的算術運算符使用元素級別。將創建一個新數組並用結果填充。

與許多矩陣語言不同,乘法運算符*的運算在NumPy數組中是元素級別的。可以使用dot函數或方法執行矩陣乘積:

某些操作(如+=和*=)可以修改現有數組,而不是創建新數組。

此外,NumPy還有很多強大的功能,大家如果有需要可以到官方參考文檔。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 充電實踐 的精彩文章:

TAG:充電實踐 |