本人原創首發連結:https://blog.onefly.top/posts/13140.html
一維資料:列表和集合型別
二維資料:列表型別
多維資料:列表型別
高維資料:字典型別或資料表示格式,如json
、xml
、yaml
維度:一組資料的組織形式
列表和陣列:一組資料的有序結構
NumPy是一個開源的Python科學計算基礎庫,包含:
一個強大的N維陣列物件ndarray
廣播功能函數
整合C/C++/Fortran程式碼的工具
線性代數、傅立葉變換、亂數生成等功能
NumPy是SciPy、Pandas等資料處理或科學計算庫的基礎
模組匯入:
import numpy as np
陣列物件可以去掉元素間運算所需的迴圈,使一維向量更像單個資料
設定專門的陣列物件,經過優化,可以提升這類應用的運算速度————科學計算中,一個維度所有資料的型別往往相同
陣列物件採用相同的資料型別,有助於節省運算和儲存空間
#屬性&說明
.ndim #秩,即軸的數量或維度的數量
.shape #ndarray物件的尺度,對於矩陣,n行m列
.size #ndarray物件元素的個數,相當於.shape中n*m的值
.dtype #ndarray物件的元素型別
.itemsize #ndarray物件中每個元素的大小,以位元組為單位
通過列表建立ndarray:
使用函數建立ndarray:
#函數&說明
np.arange(n) #類似range()函數,返回ndarray型別,元素從0到n-1
np.ones(shape) #根據shapes生成一個全l陣列,shape是元組型別
np.zeros(shape) #根據shape生成一個全陣列,shape是元組型別
np.full(shape,val) #根據shape:生成一個陣列,每個元素值都是val
np.eye(n) #建立一個正方的n*n單位矩陣,對角線為1,其餘為0
ndarray陣列的變換:
對於建立後的ndarray陣列,可以對其進行維度變換和元素型別變換
#方法&說明
.reshape(shape) #不改變陣列元素,返回一個shape形狀的陣列,原陣列不變
.resize(shape) #與.reshape()功能一致,但修改原陣列
.swapaxes(ax1,ax2) #將陣列n個維度中兩個維度進行調換
.flatten() #對陣列進行降維,返回摺疊後的一維陣列,原陣列不變
陣列的索引和切片
一維陣列的索引和切片
多維陣列索引
多維陣列切片
NumPy一元函數:
#函數&說明
np.abs(x)
np.fabs(x)#計算陣列各元素的絕對值
np.sqrt(x)#計算陣列各元素的平方根
np.square(x)#計算陣列各元素的平方
np.log(x)
np.1og10(x)
np.1og2(x)#計算陣列各元素的自然對數、10底對數和2底對數
np.ceil(x)
np.floor(x)#計算陣列各元素的ceiling值或f1oor值
np.rint(x)#計算陣列各元素的四捨五入值
np.modf(x)#將陣列各元素的小數和整數部分以兩個獨立陣列形式返回
np.cos(x)np.cosh(x)
np.sin(x)np.sinh(x)#計算陣列各元素的普通型和雙曲型三角函數
np.tan(x)np.tanh(x)
np.exp(x)#計算陣列各元素的指數值
np.sign(x)#計算陣列各元素的符號值,1(+),0,-1(-)
NumPy二元函數:
#函數&說明
+ - * / ** #兩個陣列各元素進行對應運算
np.maximum(x,y)
np.fmax()
np.minimum(x,y)
np.fmin() #元素級的最大值/最小值計算
np.mod(x,y) #元素級的模運算
np.copysign(x,y) #將陣列y中各元素值的符號賦值給陣列x對應元素
>< >= <= == != #算術比較,產生布林型陣列
Numpy資料存取:
csv格式:
np.savetxt(frame,array,fmt='%.18e',delimiter=None)
其他:
np.loadtxt(frame,dtype=np.float,delimiter=None,
unpack=False)
其他:
a.tofile(frame, sep='', format='%s')
np.fromfile(frame, dtype=float, count=‐1, sep='')
numpy亂數函數子庫:
np.random.*
#函數&說明
rand(d0,d1,..,dn) #根據d0-dn建立亂數陣列,浮點數,[0,1),均勻分佈
randn(d0,d1,..,dn) #根據d0-dn建立亂數陣列,標準正態分佈
randint(low[,high,shape]) #根據shapet建立隨機整數或整數陣列,範圍是[low,high)
seed(s) #亂數種子,s是給定的種子值
shuffle(a) #根據陣列a的第1軸進行隨排列,改變陣列×
permutation(a) #根據陣列a的第1軸產生一個新的亂序陣列,不改變陣列x
choice(a[,size,replace,p]) #從一維陣列a中以概率p抽取元素,形成size形狀新陣列 replace表示是否可以重用元素,預設為False
uniform(low,high,size) #產生具有均勻分佈的陣列,low起始值,high結束值,size形狀
normal(loc,scale,size) #產生具有正態分佈的陣列,loc均值,scale標準差,size形狀
poisson(lam,size) #產生具有泊松分佈的陣列,lam隨機事件發生率,size形狀
numpy統計函數:
np.*
#函數&說明
sum(a,axis=None) #根據給定軸axis計算陣列a相關元素之和,axis整數或元組
mean(a,axis=None) #根據給定軸axis計算陣列a相關元素的期望,axis整數或元組
average(a,axis=None,weights=None) #根據給定軸axis計算陣列a相關元素的加權平均值
std(a,axis=None) #根據給定軸axis計算陣列a相關元素的標準差
var(a,axis=None) #根據給定軸axis計算陣列a相關元素的方差
min(a)
max(a) #計算陣列a中元素的最小值、最大值
argmin(a)
argmax(a) #計算陣列a中元素最小值、最大值的降一維後下標
unravel_index(index,shape) #根據shape?將一維下標index轉換成多維下標
ptp(a) #計算陣列a中元素最大值與最小值的差
median(a) #計算陣列a中元素的中位數(中值)
numpy替換函數:
CSV檔案
np.loadtxt()
np.savetxt()
多維資料存取
a.tofile()
np.fromfile()
np.save()
np.savez()
np.load()
隨機函數
np.random.rand()
np.random.randn()
np.random.randint()
np.random.seed()
np.random.shuffle()
np.random.permutation()
np.random.choice()
原創作者:孤飛-部落格園
原文連結:https://ranxi2001.github.io/posts/13140.html