Numpy 使用教程 1

2021-08-08 11:05:30 字數 2321 閱讀 4708

如果你使用 python 語言進行科學計算,那麼一定會接觸到 numpy。numpy 是支援 python 語言的數值計算擴充庫,其擁有強大的多維陣列處理與矩陣運算能力。除此之外,numpy 還內建了大量的函式,方便你快速構建數學模型。

本課程難度為一般,屬於初級級別課程,適合具有 python 基礎,並對使用 numpy 進行科學計算感興趣的使用者。

numpy 的英文全稱為 numerical python,意味 python 面向數值計算的第三方庫。numpy 的特點在於,針對 python 內建的陣列型別做了擴充,支援更高維度的陣列和矩陣運算,以及更豐富的數學函式。

numpy 是 scipy.org 中最重要的庫之一,它同時也被 pandas,matplotlib 等我們熟知的第三方庫作為核心計算庫。當你在單獨安裝這些庫時,你會發現同時會安裝 numpy 作為依賴。

sudo pip install numpy
windows 使用者只需要開啟系統命令行工具,輸入pip install numpy即可。當然,ubuntu & debian 使用者還可以用 apt-get 安裝:

sudo apt-get install python-numpy
python 本身支援的數值型別有int(整型,python2 中存在 long 長整型)、float(浮點型)、bool(布林型) 和complex(複數型)。

而 numpy 支援比 python 本身更為豐富的數值型別,細分如下:

bool:布林型別,1 個位元組,值為 true 或 false。

int:整數型別,通常為 int64 或 int32 。

intc:與 c 裡的 int 相同,通常為 int32 或 int64。

intp:用於索引,通常為 int32 或 int64。

int8:位元組(從 -128 到 127)

int16:整數(從 -32768 到 32767)

int32:整數(從 -2147483648 到 2147483647)

int64:整數(從 -9223372036854775808 到 9223372036854775807)

uint8:無符號整數(從 0 到 255)

uint16:無符號整數(從 0 到 65535)

uint32:無符號整數(從 0 到 4294967295)

uint64:無符號整數(從 0 到 18446744073709551615)

float:float64 的簡寫。

float16:半精度浮點,5 位指數,10 位尾數

float32:單精度浮點,8 位指數,23 位尾數

float64:雙精度浮點,11 位指數,52 位尾數

complex:complex128 的簡寫。

complex64:複數,由兩個 32 位浮點表示。

complex128:複數,由兩個 64 位浮點表示。

在 numpy 中,上面提到的這些數值型別都被歸於dtype(data-type)物件的例項。

我們可以用numpy.dtype(object, align, copy)來指定數值型別。而在陣列裡面,可以用dtype=引數。

import numpy as np

a = np.array([1.1, 2.2, 3.3], dtype=np.float64) # 指定 1 維陣列的數值型別為 float64

另外,你可以使用 .astype() 方法在不同的數值型別之間相互轉換。

a.astype(int) # 將 a 的數值型別從 float64 轉換為 int
最後,你可以使用 .dtype 來檢視 dtype 屬性。

a.dtype # 檢視 a 的數值型別
了解並陣列 numpy 支援的數值型別至關重要,因為 dtype 引數幾乎延伸到了 numpy 中所有與多維陣列相關的方法中去。

numpy簡明教程 1

讀的是numpy user guide release 1.3,官方另有一本reference,600多頁,還是先讀這個省事兒的。凡例 a.float 表示物件型別是float,用時不用加 和 b.中的跳格表示換行。chap 2 numpy basics 1.import numpy as np,沿...

NumPy簡明教程(二 陣列1)

numpy陣列是乙個多維陣列物件,稱為ndarray。其由兩部分組成 大部分操作僅針對於元資料,而不改變底層實際的資料。關於numpy陣列有幾點必需了解的 在詳細介紹numpy陣列之前。先詳細介紹下numpy陣列的基本屬性。numpy陣列的維數稱為秩 rank 一維陣列的秩為1,二維陣列的秩為2,以...

NumPy教程之(四)

numpy針對陣列 array 的基本數學操作函式一般是逐元素進行的,比如矩陣的加減運算,線性代數上的矩陣運算則有專門的函式,如dot函式等,具體看示例。陣列的有些數 算,如 和 施行的是原位運算,即直接修改覆蓋原來的變數,而不是新建乙個變數,如下所示 當遇到型別不同的陣列進行運算的時候,numpy...