1.建立ndarray數組:Numpy庫能將序列數據(列表,元組,數組等其餘數據類型)轉換爲ndarray數組
須要引入numpy庫:import numpy as np
語法:np.array(data)
參數說明:data爲須要轉換爲ndarray數組的序列
Numpy庫還有一些函數能夠建立一些特殊的數組:
arr=np.array()
arange: 相似內置的range函數,用於建立數組
ones: 建立指定長度或形狀的全1數組
ones_like: 以令一個數組爲參考,根據其形狀和dtype建立全1數組
zeros、zeros_like:建立全0數組
empty、empty_like:建立沒有具體值的數
eye、 identity: 建立正方形的N×N單位矩陣
**注意:用np.調用
2.ndarray對象屬性:
.ndim: 秩,即數據軸的個數
.shape: 數組的維度
.size: 元素的總個數
.dtype: 數據類型
.itemsize:數組中每一個元素的字節大小
注意:用arr.調用
3.ndarray數據類型:
常見的幾種數據類型:浮點數(float)、整數(int)、複數(complex)、布爾值(bool)、字符串(string_)、python對象(object)
4.數組變換1-數組重塑、數組合並
1.數組重塑:對於定義好的數組,能夠經過reshape方法改變其數據維度
語法:arr.reshape((x,y))
說明:arr:ndarray數組
x:行
y:列,能夠設置成-1,表示數組的維度能夠經過數據自己來判斷
與reshape相反的方法是數據散開(ravel)或扁平化(flatten)
語法:arr.ravel()
說明:arr:ndarray數組python
語法:arr.flatten() 說明:arr:ndarray數組
2.數組合並:用於幾個數組間的操做,concatenate方法經過指定軸方向,將多個數組合並在一塊兒。
***注意:軸用來爲超過一維的數組定義的屬性,二維數組擁有兩個軸:
第0軸:(axis=0)沿着行的方向垂直向下
第1軸:(axis=1)沿着列的方向水平延伸
語法:np.concatenate([arr1,arr2],axis=0|1)
此外,vstack和hstack也能夠進行數組合並:
語法:np.vstack((arr1,arr2))
np.hstack((arr1,arr2))
4.數組變換2-數組拆分、數組置換和軸對稱:
1.數組拆分:方法:split
語法:np.aplit(arr,indices_or_sections,axis=0)
說明:arr:要切分的數組
indices_or_sections:若是是一個整數,就用該數平均切分,若是是數組,爲沿軸切分的位置(左開右閉)
axis:爲0,橫線切分,爲1,縱向切分
2.數組置換:transpose方法須要傳入軸編號組成的元組 arr.transpose((1,0))
3.軸對稱:arr.swapaxes(1,2)
5.Numpy隨機數函數:
在numpy.random模塊中,提供了多種隨機數生成函數:
rand: 產生均勻分佈的樣本值
randint: 給定範圍內去隨機整數
randn: 產生正態分佈的樣本值
seed: 隨機數種子
permutation:對一個序列隨機排序,不改變原數組
shuffle: 對一個序列隨機排序,改變原數組
normal: 產生具備正態分佈的數組
2.3數組的運算:
1.通用函數: abs函數求絕對值,square函數求平方
arr=np.random.randn(3,3)
arr
np.abs(arr)
np.square(arr)
二元函數:須要傳入兩個數組並返回一個數組:add函數用於兩個數組的相加,minimum函數能夠計算元素最小值
arr1=np.random,randint(1,10,size=(5))
arr1
array([2,7,2,4,2])
arr2=np.random,randint(1,10,size=(5))
arr2
array([3,2,1,8,6])
np.add(arr1,arr2)
array([5,9,3,12,8])
np.minimum(arr1,arr2)
array([2,2,1,4,2])
有些函數能夠返回兩個數組,例如modf函數,能夠返回數組元素的小數和整數部分:
arr=np.random.normal(2,4,size=(6,))
arr
np.modf(arr)
2.條件邏輯運算:
若是須要經過cond的值來選取arr1和arr2的值,當cond爲True時,選擇arr1的值,不然選擇arr2的值,能夠經過if語句判斷來實現
建立數組:arr1=np.array([1,2,3,4])
arr1=np.array([5,6,7,8])
arr1=np.array([True,False,False,True])
條件邏輯:result=[(x if c else y) for x,y,c in zip(arr1,arr2,cond)]
result
[1,6,7,4]
where函數能夠解決處理速度不快,沒法用於多維數組的問題
result=np.where(cond,arr1,arr2)
result
array([])
sum函數求和,mean函數求算數平均數,std函數求標準差,min:最小值,max:最大值,
arr.sum() arr.mean() arr.std() arr.min() arr.max()
cumsum:全部元素的累計和 cumprod:全部元素的累計積
arr.cumsum() arr.cumprod()數組
dot函數用於矩陣乘法
np.dot(arr1,arr2)
array()
3.排序:sort方法
arr.sort()
arr
4.集合運算:使用np.unique方法來找出數組的惟一值
arr=np.array()
arr
np.unique(arr)
5.數組的讀取:
能夠經過np.loadtxt方法進行讀取 dom