Python數據分析之Numpy庫(詳細筆記)

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數組

             語法: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方法進行讀取

  1. 數據的存儲:arr=np.arrange().reshape
    arr
    np.savetxt()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章