Numpy指南
- 2019 年 12 月 31 日
- 筆記
文章目錄
numpy指南
numpy是一個能夠處理多維數組的庫,雖然python中也內置了處理數組的庫,但是這個並不能滿足大數據時代的需求,因此產生了可以處理多維數組的numpy
安裝
pip install numpy
創建
array
array函數是一個最基本的創建方式,其中傳入的參數是一個序列,既可以創建一維數組,也可以創建二維數組,但是這種方法不太靈活,因為你要把這個序列顯式的寫出來,先不多說了,自己體會吧
import numpy as np a=np.array([1,2,3,4,5]) #創建一個二維數組 b=np.array([[1,2,3,4],[2,3,4,5]]) #創建一個二維數組 print a.shape #輸出數組的維度,(5,) print b.shape #(2,4)
arange
arange(start,end,step)創建一個一維數組,起始值為start,終值為end,步長為step,其中np.arrange(10) 表示起始值為0,終值為10,步長為1
a=np.arange(0,10,1) b=np.arange(10)
reshape
reshape(a,b)能過改變當前數組的尺寸將其賦值給新的數組,但是當前數組並沒有改變,這個用來改變當前數組的維度,可以將以為數組改變為二維數組
a=np.arange(10) #創建一個有10個元素的一維數組 b=np.reshape(2,5) #將改變後的當前數組賦值給b,但是a數組並沒有改變 ,2*5=10 c=np.reshape(5,-1) #第一個參數為5行,第二個-1表示自動計算生成,10/5=2
linspace
linspace(start,end,number)創建一個等距離的數組,start是起始值,end是終值,number是個數,創建的是一個一維數組,其中的元素全部是浮點數,默認的是包括終值的,但是可以通過endpoint=False指定不包括終值
a=np.linspace(0,10,10) #包含10的一個等差數組 b=np.linspace(0,10,10,endpoint=False) #不包含10的一個等差數組
logspace
logspace(start,end,number)創建的是在10^start和10^end之間包含number個元素的等比數組,創建的是一個等比數組
a=np.logspace(0,1,10) #創建一個在1-10之間的10個元素的等比數組
存取數據
下標存取
a=np.arange(10) #[0,1,2,3,4,5,6,7,8,9] a[0] #獲取第一個元素的值1 a[0:2] #獲取下標我0,1的值,注意不包括2 a[0:10:1] # 獲取下標在0-10之間的(包括0,不包括9),步長為1的元素,就是每隔一個區娶一個 a[1:] #獲取從第二個元素開始到最後的所有的元素 a[:8] #獲取下標為0-8之間的元素(不包括8) a[1::1] #獲取下標為0到最後並且步長為1的所有元素 a[8:4:-1] #獲取起始下標為8,終止下標為4,並且步長為-1,這是從後向前獲取元素 a[::-1] #將數組逆置
使用整數序列
當使用整數序列對數組元素進行存取時,將使用整數序列中的每個元素作為下標,整數序列可以是列表或者數組。使用整數序列作為下標獲得的數組不和原始數組共享數據空間。
x = np.arange(10,1,-1) x[[3, 3, 1, 8]] # 獲取x中的下標為3, 3, 1, 8的4個元素,組成一個新的數組
ufunc
ufunc是universal function的縮寫,它是一種能對數組的每個元素進行操作的函數。NumPy內置的許多ufunc函數都是在C語言級別實現的,因此它們的計算速度非常快.
np.sin(x) #對數組中的每一個值進行sin操作,並且返回一個數組 np.sin(x,y) #對數組x中的值進行sin操縱,所得結果返回給y,但是也返回一個結果數組,這個數組和y共享一塊空間的 np.add(a,b) #將兩個數組中的對應的值都相加,返回的是一個新的數組 np.add(a,b,c) # 將兩個數組中對應的值相加,結果複製給c,並且返回一個新的數組 np.subtract(a,b) # 兩個數組相減,a-b,返回的是一個新的數組 np.subtract(a,b,c) np.multiply(a,b) #相乘 np.multiply(a,b,c) #相乘 divide(a,b,[,y]) #相除,如果是兩個整數相除,那麼返回的是整數 true_divide(a,b,[,y]) #相除,總是返回精確的商 floor_divide(a,b,[,y]) #總是對返回值取整 power(a,b,[,y]) # a^b 平方 mod(a,b,[,y]) #取余 %
