App下載

Python數據分析----NumPy庫常用用法總結

猿友 2020-12-31 17:28:30 瀏覽數 (4004)
反饋

前言

在沒給大家介紹 numpy 之前先給大家說下 Python 的基本概念。

Python 是一種高級的,動態(tài)的,多泛型的編程語言。Python 代碼很多時候看起來就像是偽代碼一樣,因此你可以使用很少的幾行可讀性很高的代碼來實現(xiàn)一個非常強大的想法。

numpy 很簡單,numpy 是 Python 的一個科學計算的庫,提供了矩陣運算的功能,其一般與 Scipy、matplotlib 一起使用。其實,list 已經提供了類似于矩陣的表示形式,不過 numpy 為我們提供了更多的函數。

小編在這給大家總結了一些 numpy 的常用操作。

首先,要引入 numpy 包:

import numpy as np

一、在numpy中N維數組對象叫做ndarrey,關于它的一些操作:

1.ndarry對象的屬性:

屬性 說明
.ndim 秩,即軸的數量或維度的數量
.shape ndarray對象的尺度,對于矩陣,n行m列
.size ndarray對象元素的個數,相當于.shape中n*m的值
.dtype ndarray對象的元素類型
.itemsize ndarray對象中每個元素的大小,以字節(jié)為單位

2.ndarry的元素類型(1):

數據類型 說明
bool 布爾類型,True或False
intc 與C語言中的int類型一致,一般是int32或int64
intp 用于索引的整數,與C語言中ssize_t一致,int32或int64
int8 字節(jié)長度的整數,取值:[‐128, 127]
int16 16位長度的整數,取值:[‐32768, 32767]
int32 32位長度的整數,取值:[‐231, 231‐1]
int64 64位長度的整數,取值:[‐263, 263‐1]

2.ndarry的元素類型(1):

數據類型 說明
bool 布爾類型,True或False
intc 與C語言中的int類型一致,一般是int32或int64
intp 用于索引的整數,與C語言中ssize_t一致,int32或int64
int8 字節(jié)長度的整數,取值:[‐128, 127]
int16 16位長度的整數,取值:[‐32768, 32767]
int32 32位長度的整數,取值:[‐231, 231‐1]
int64 64位長度的整數,取值:[‐263, 263‐1]

3.ndarry的元素類型(2):

數據類型 說明
uint8 8位無符號整數,取值:[0, 255]
uint16 16位無符號整數,取值:[0, 65535]
uint32 32位無符號整數,取值:[0, 232‐1]
uint64 32位無符號整數,取值:[0, 264‐1]
float16 16位半精度浮點數:1位符號位,5位指數,10位尾數
float32 32位半精度浮點數:1位符號位,8位指數,23位尾數
float64 64位半精度浮點數:1位符號位,11位指數,52位尾數
complex64 復數類型,實部和虛部都是32位浮點數
complex128 復數類型,實部和虛部都是64位浮點數

4.ndarry常用函數總結:

函數 說明
np.arange(n) 類似range()函數,返回ndarray類型,元素從0到n‐1
np.ones(shape) 根據shape生成一個全1數組,shape是元組類型 np.zeros(shape)根據shape生成一個全0數組,shape是元組類型
np.full(shape,val) 根據shape生成一個數組,每個元素值都是val
np.eye(n) 創(chuàng)建一個正方的n*n單位矩陣,對角線為1,其余為0
np.ones_like(a) 根據數組a的形狀生成一個全1數組
np.zeros_like(a) 根據數組a的形狀生成一個全0數組
np.full_like(a,val) 根據數組a的形狀生成一個數組,每個元素值都是val
np.linspace() 根據起止數據等間距地填充數據,形成數組
np.concatenate() 將兩個或多個數組合并成一個新的數組
.reshape(shape) 不改變數組元素,返回一個shape形狀的數組,原數組不變
.resize(shape) 與.reshape()功能一致,但修改原數組
.swapaxes(ax1,ax2) 將數組n個維度中兩個維度進行調換
.flatten() 對數組進行降維,返回折疊后的一維數組,原數組不變
np.abs(x) np.fabs(x) 計算數組各元素的絕對值
np.sqrt(x) 計算數組各元素的平方根
np.square(x) 計算數組各元素的平方
np.log(x) np.log10(x) np.log2(x) 計算數組各元素的自然對數、10底對數和2底對數
np.ceil(x) np.floor(x) 計算數組各元素的ceiling值或floor值
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(‐)
+ ‐* / ** 兩個數組各元素進行對應運算
np.maximum(x,y) np.fmax() np.minimum(x,y)np.fmin() 元素級的最大值/最小值計算
np.mod(x,y) 元素級的模運算
np.copysign(x,y) 將數組y中各元素值的符號賦值給數組x對應元素
> < >= <= == != 算術比較,產生布爾型數組

二、在numpy中隨機函數庫的函數總結:

1.np.random的隨機函數(1):

函數 說明
rand(d0,d1,..,dn) 根據d0‐dn創(chuàng)建隨機數數組,浮點數,[0,1),均勻分布
randn(d0,d1,..,dn) 根據d0‐dn創(chuàng)建隨機數數組,標準正態(tài)分布
randint(low[,high,shape]) 根據shape創(chuàng)建隨機整數或整數數組,范圍是[low, high)
seed(s) 隨機數種子,s是給定的種子值

2.np.random的隨機函數(2):

函數 說明
shuffle(a) 根據數組a的第1軸進行隨排列,改變數組x
permutation(a) 根據數組a的第1軸產生一個新的亂序數組,不改變數組x
choice(a[,size,replace,p]) 從一維數組a中以概率p抽取元素,形成size形狀新數組 replace表示是否可以重用元素,默認為False

3.np.random的隨機函數(3):

函數 說明
uniform(low,high,size) 產生具有均勻分布的數組,low起始值,high結束值,size形狀
normal(loc,scale,size) 產生具有正態(tài)分布的數組,loc均值,scale標準差,size形狀
poisson(lam,size) 產生具有泊松分布的數組,lam隨機事件發(fā)生率,size形狀

三、在numpy中統(tǒng)計函數總結:

函數說明
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中元素的中位數(中值)
np.gradient(f)計算數組f中元素的梯度,當f為多維時,返回每個維度梯度

1 人點贊