數據分析三大神器之一:Numpy

數據分析三大神器之一:Numpy

簡介:

NumPy是高性能科學計算和數據分析的基礎包。部分功能如下:

  • ndarray, 具有矢量算術運算和複雜廣播能力的快速且節省空間的多維數組。
  • 用於對整組數據進行快速運算的標準數學函數(無需編寫循環)。
  • 用於讀寫磁盤數據的工具以及用於操作內存映射文件的工具。
  • 線性代數、隨機數生成以及傅里葉變換功能。
  • 用於集成C、C++、Fortran等語言編寫的代碼的工具。

  首先要導入numpy庫:import numpy as np

目錄

數據分析三大神器之一:Numpy

1、數據類型

2、常用函數

3、ndarray的屬性

4、ndarray函數

5、ndarray索引 | 切片方法

6、random常用函數

7、 NumPy.linalg函數和屬性


1、數據類型

類型

類型代碼

說明

int8、uint8

i1、u1

有符號和無符號8位整型(1字節)

int16、uint16

i2、u2

有符號和無符號16位整型(2字節)

int32、uint32

i4、u4

有符號和無符號32位整型(4字節)

int64、uint64

i8、u8

有符號和無符號64位整型(8字節)

float16

f2

半精度浮點數

float32

f4、f

單精度浮點數

float64

f8、d

雙精度浮點數

float128

f16、g

擴展精度浮點數

complex64

c8

分別用兩個32位表示的複數

complex128

c16

分別用兩個64位表示的複數

complex256

c32

分別用兩個128位表示的複數

bool

?

布爾型

object

O

python對象

string

Sn

固定長度字符串,每個字符1字節,如S10

unicode

Un

固定長度Unicode,字節數由系統決定,如U10

2、常用函數

2.1生成函數

生成函數

作用

np.array( x)

np.array( x, dtype)

將輸入數據轉化爲一個ndarray

將輸入數據轉化爲一個類型爲type的ndarray

np.asarray( array )

將輸入數據轉化爲一個新的(copy)ndarray

np.ones( N )

np.ones( N, dtype)

np.ones_like( ndarray )

生成一個N長度的一維全一ndarray

生成一個N長度類型是dtype的一維全一ndarray

生成一個形狀與參數相同的全一ndarray

np.zeros( N)

np.zeros( N, dtype)

np.zeros_like(ndarray)

生成一個N長度的一維全零ndarray

生成一個N長度類型位dtype的一維全零ndarray

類似np.ones_like( ndarray )

np.empty( N )

np.empty( N, dtype)

np.empty(ndarray)

生成一個N長度的未初始化一維ndarray

生成一個N長度類型是dtype的未初始化一維ndarray

類似np.ones_like( ndarray )

np.eye( N )

np.identity( N )

創建一個N * N的單位矩陣(對角線爲1,其餘爲0)

np.arange( num)

np.arange( begin, end)

np.arange( begin, end, step)

生成一個從0到num-1步數爲1的一維ndarray

生成一個從begin到end-1步數爲1的一維ndarray

生成一個從begin到end-step的步數爲step的一維ndarray

np.mershgrid(ndarray, ndarray,...)

生成一個ndarray * ndarray * ...的多維ndarray

np.where(cond, ndarray1, ndarray2)

根據條件cond,選取ndarray1或者ndarray2,返回一個新的ndarray

np.in1d(ndarray, [x,y,...])

檢查ndarray中的元素是否等於[x,y,...]中的一個,返回bool數組

 

2.2矩陣函數

矩陣函數

說明

np.diag( ndarray)

以一維數組的形式返回方陣的對角線(或非對角線)元素

np.diag( [x,y,...])

將一維數組轉化爲方陣(非對角線元素爲0)

np.dot(ndarray, ndarray)

矩陣乘法

np.trace( ndarray)

計算對角線元素的和

 

2.3排序函數

排序函數

說明

np.sort( ndarray)

排序,返回副本

np.unique(ndarray)

返回ndarray中的元素,排除重複元素之後,並進行排序

np.intersect1d( ndarray1, ndarray2)

np.union1d( ndarray1, ndarray2)

np.setdiff1d( ndarray1, ndarray2)

np.setxor1d( ndarray1, ndarray2)

返回二者的交集並排序。

返回二者的並集並排序。

返回二者的差。

返回二者的對稱差

 

2.4一元計算函數

一元計算函數

說明

np.abs(ndarray)

np.fabs(ndarray)

計算絕對值

計算絕對值(非複數)

np.mean(ndarray)

求平均值

np.sqrt(ndarray)

計算x^0.5

np.square(ndarray)

計算x^2

np.exp(ndarray)

計算e^x

log、log10、log2、log1p

計算自然對數、底爲10的log、底爲2的log、底爲(1+x)的log

np.sign(ndarray)

計算正負號:1(正)、0(0)、-1(負)

np.ceil(ndarray)

np.floor(ndarray)

np.rint(ndarray)

計算大於等於改值的最小整數

計算小於等於該值的最大整數

四捨五入到最近的整數,保留dtype

np.modf(ndarray)

將數組的小數和整數部分以兩個獨立的數組方式返回

np.isnan(ndarray)

返回一個判斷是否是NaN的bool型數組

np.isfinite(ndarray)

np.isinf(ndarray)

返回一個判斷是否是有窮(非inf,非NaN)的bool型數組

返回一個判斷是否是無窮的bool型數組

cos、cosh、sin、sinh、tan、tanh

普通型和雙曲型三角函數

arccos、arccosh、arcsin、arcsinh、arctan、arctanh

反三角函數和雙曲型反三角函數

np.logical_not(ndarray)

計算各元素not x的真值,相當於-ndarray

 

2.5多元計算函數

多元計算函數

說明

np.add(ndarray, ndarray)

np.subtract(ndarray, ndarray)

np.multiply(ndarray, ndarray)

np.divide(ndarray, ndarray)

np.floor_divide(ndarray, ndarray)

np.power(ndarray, ndarray)

np.mod(ndarray, ndarray)

相加

相減

乘法

除法

圓整除法(丟棄餘數)

次方

求模

np.maximum(ndarray, ndarray)

np.fmax(ndarray, ndarray)

np.minimun(ndarray, ndarray)

np.fmin(ndarray, ndarray)

求最大值

求最大值(忽略NaN)

求最小值

求最小值(忽略NaN)

np.copysign(ndarray, ndarray)

將參數2中的符號賦予參數1

np.greater(ndarray, ndarray)

np.greater_equal(ndarray, ndarray)

np.less(ndarray, ndarray)

np.less_equal(ndarray, ndarray)

np.equal(ndarray, ndarray)

np.not_equal(ndarray, ndarray)

>

>=

<

<=

==

!=

logical_and(ndarray, ndarray)

logical_or(ndarray, ndarray)

logical_xor(ndarray, ndarray)

&

|

^

np.dot( ndarray, ndarray)

計算兩個ndarray的矩陣內積

np.ix_([x,y,m,n],...)

生成一個索引器,用於Fancy indexing(花式索引)

 

2.6文件讀寫

文件讀寫

說明

np.save(string, ndarray)

將ndarray保存到文件名爲 [string].npy 的文件中(無壓縮)

np.savez(string, ndarray1, ndarray2, ...)

將所有的ndarray壓縮保存到文件名爲[string].npy的文件中

np.savetxt(sring, ndarray, fmt, newline='\n')

將ndarray寫入文件,格式爲fmt

np.load(string)

讀取文件名string的文件內容並轉化爲ndarray對象(或字典對象)

np.loadtxt(string, delimiter)

讀取文件名string的文件內容,以delimiter爲分隔符轉化爲ndarray

3、ndarray的屬性

ndarray.ndim

獲取ndarray的維數

ndarray.shape

獲取ndarray各個維度的長度

ndarray.dtype

獲取ndarray中元素的數據類型

ndarray.T

簡單轉置矩陣ndarray

4、ndarray函數

4.1常用函數

函數

說明

ndarray.astype(dtype)

轉換類型,若轉換失敗則會出現TypeError

ndarray.copy()

複製一份ndarray(新的內存空間)

ndarray.reshape((N,M,...))

將ndarray轉化爲N*M*...的多維ndarray(非copy)

ndarray.transpose((xIndex,yIndex,...))

根據維索引xIndex,yIndex...進行矩陣轉置,依賴於shape,不能用於一維矩陣(非copy)

ndarray.swapaxes(xIndex,yIndex)

交換維度(非copy)

 

4.2 計算函數

計算函數

說明

ndarray.mean( axis=0 )

求平均值 

ndarray.sum( axis= 0)

求和 

ndarray.cumsum( axis=0)

ndarray.cumprod( axis=0)

累加 

累乘

ndarray.std()

ndarray.var()

方差

標準差

ndarray.max()

ndarray.min()

最大值

最小值

ndarray.argmax()

ndarray.argmin()

最大值索引

最小值索引

ndarray.any()

ndarray.all()

是否至少有一個True

是否全部爲True

ndarray.dot( ndarray)

計算矩陣內積

 

4.3 排序函數

排序函數

說明

ndarray.sort(axis=0)

排序,返回源數據

5、ndarray索引 | 切片方法

ndarray[n]

選取第n+1個元素

ndarray[n:m]

選取第n+1到第m個元素

ndarray[:]

選取全部元素

ndarray[n:]

選取第n+1到最後一個元素

ndarray[:n]

選取第0到第n個元素

ndarray[ bool_ndarray ]

注:bool_ndarray表示bool類型的ndarray

選取爲true的元素

ndarray[[x,y,m,n]]...

選取順序和序列爲x、y、m、n的ndarray

ndarray[n,m]

ndarray[n][m]

選取第n+1行第m+1個元素

ndarray[n,m,...]

ndarray[n][m]....

選取n行n列....的元素

6、random常用函數

函數

說明

seed()

seed(int)

seed(ndarray)

確定隨機數生成種子

permutation(int)

permutation(ndarray)

返回一個一維從0~9的序列的隨機排列

返回一個序列的隨機排列

shuffle(ndarray)

對一個序列就地隨機排列

rand(int)

randint(begin,end,num=1)

產生int個均勻分佈的樣本值

從給定的begin和end隨機選取num個整數

randn(N, M, ...)

生成一個N*M*...的正態分佈(平均值爲0,標準差爲1)的ndarray

normal(size=(N,M,...))

生成一個N*M*...的正態(高斯)分佈的ndarray 

beta(ndarray1,ndarray2)

產生beta分佈的樣本值,參數必須大於0 

 chisquare()

產生卡方分佈的樣本值 

 gamma()

產生gamma分佈的樣本值 

 uniform()

產生在[0,1)中均勻分佈的樣本值 

7、 NumPy.linalg函數和屬性

函數

說明

det(ndarray)

計算矩陣列式

eig(ndarray)

計算方陣的本徵值和本徵向量

inv(ndarray)

pinv(ndarray)

計算方陣的逆

計算方陣的Moore-Penrose僞逆

qr(ndarray)

計算qr分解 

svd(ndarray)

計算奇異值分解svd

solve(ndarray)

解線性方程組Ax = b,其中A爲方陣 

lstsq(ndarray)

計算Ax=b的最小二乘解 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章