python數據分析之numpy和pandas的操作

python常用網址:
1.Python官網:https://www.python.org/
2.各種庫的whl離線安裝包:http://www.lfd.uci.edu/~gohlke/pythonlibs/#scikit-learn
3.數據分析常用庫的離線安裝包(pip+wheels)(百度雲):http://pan.baidu.com/s/1dEMXbfN 密碼:bbs2


二、常用庫

1.NumPy

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

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

  A NumPy函數和屬性:

類型類型代碼說明
int8、uint8i1、u1有符號和無符號8位整型(1字節)
int16、uint16i2、u2有符號和無符號16位整型(2字節)
int32、uint32i4、u4有符號和無符號32位整型(4字節)
int64、uint64i8、u8有符號和無符號64位整型(8字節)
float16f2半精度浮點數
float32f4、f單精度浮點數
float64f8、d雙精度浮點數
float128f16、g擴展精度浮點數
complex64c8分別用兩個32位表示的複數
complex128c16分別用兩個64位表示的複數
complex256c32分別用兩個128位表示的複數
bool?布爾型
objectOpython對象
stringSn固定長度字符串,每個字符1字節,如S10
unicodeUn固定長度Unicode,字節數由系統決定,如U10

表2.1.A.1 NumPy類型

 

生成函數作用

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

  
矩陣函數說明

np.diag( ndarray)

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

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

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

np.dot(ndarray, ndarray)矩陣乘法
np.trace( ndarray)計算對角線元素的和
  
  

排序函數

說明

np.sort( ndarray)

排序,返回副本

np.unique(ndarray)

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

np.intersect1d( ndarray1, ndarray2)

np.union1d( ndarray1, ndarray2)

np.setdiff1d( ndarray1, ndarray2)

np.setxor1d( ndarray1, ndarray2)

返回二者的交集並排序。

返回二者的並集並排序。

返回二者的差。

返回二者的對稱差

  
一元計算函數說明

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

多元計算函數

說明

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(花式索引)
  
文件讀寫說明
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
表2.1.A.2 np常用函數
 

  B NumPy.ndarray函數和屬性:

ndarray.ndim獲取ndarray的維數
ndarray.shape獲取ndarray各個維度的長度
ndarray.dtype獲取ndarray中元素的數據類型
ndarray.T簡單轉置矩陣ndarray
表2.1.B.1 ndarray屬性
 
函數說明
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)
  
計算函數說明
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)

計算矩陣內積

排序函數

說明

ndarray.sort(axis=0)

排序,返回源數據

表2.1.B.2 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列....的元素
表2.1.B.3 ndarray索引/切片方式
 

  C NumPy.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)中均勻分佈的樣本值 

 2.1.C.1 random常用函數

  D 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的最小二乘解 

 2.1.D.1 linalg常用函數

2.Pandas

    pandas 是基於NumPy 的一種工具,該工具是爲了解決數據分析任務而創建的。Pandas 納入了大量庫和一些標準的數據模型,提供了高效地操作大型數據集所需的工具。pandas提供了大量能使我們快速便捷地處理數據的函數和方法。

  >>> from pandas import Series, DataFrame

  >>> import pandas as pd

  A.pandas

函數說明

pd.isnull(series)

pd.notnull(series)

判斷是否爲空(NaN)

判斷是否不爲空(not NaN)

  
  

2.2.A.1 pandas常用函數

  B.Series

    Series可以運用ndarray或字典的幾乎所有索引操作和函數,融合了字典和ndarray的優點。
屬性說明
values獲取數組
index獲取索引
namevalues的name
index.name索引的name
2.2.B.1 Series常用屬性
 
函數說明
Series([x,y,...])Series({'a':x,'b':y,...}, index=param1)生成一個Series
Series.copy()複製一個Series 

Series.reindex([x,y,...], fill_value=NaN)

Series.reindex([x,y,...], method=NaN)

Series.reindex(columns=[x,y,...])

重返回一個適應新索引的新對象,將缺失值填充爲fill_value

返回適應新索引的新對象,填充方式爲method

對列進行重新索引

Series.drop(index)丟棄指定項
Series.map(f)應用元素級函數 
  
排序函數說明
Series.sort_index(ascending=True)根據索引返回已排序的新對象
Series.order(ascending=True)根據值返回已排序的對象,NaN值在末尾
Series.rank(method='average', ascending=True, axis=0)爲各組分配一個平均排名

df.argmax()

df.argmin()

返回含有最大值的索引位置

返回含有最小值的索引位置

2.2.B.2 Series常用函數

    reindex的method選項:
      ffill, bfill     向前填充/向後填充
      pad, backfill   向前搬運,向後搬運
    rank的method選項
      'average'    在相等分組中,爲各個值分配平均排名
      'max','min'   使用整個分組中的最小排名
      'first'      按值在原始數據中出現的順序排名

  C.DataFrame

    DataFrame是一個表格型的數據結構,它含有一組有序的列,每列可以是不同的值類型(數值、字符串、布爾值等)。DataFrame既有行索引也有列索引,它可以被看做由Series組成的字典(共用同一個索引)。

    DataFrame可以通過類似字典的方式或者.columnname的方式將列獲取爲一個Series。行也可以通過位置或名稱的方式進行獲取。

    爲不存在的列賦值會創建新列。

    >>> del frame['xxx']  # 刪除列

屬性說明
valuesDataFrame的值
index行索引
index.name行索引的名字
columns列索引
columns.name列索引的名字
ix返回行的DataFrame
ix[[x,y,...], [x,y,...]]對行重新索引,然後對列重新索引
Tframe行列轉置
  

2.2.C.1 DataFrame常用屬性

 

函數說明

DataFrame(dict, columns=dict.index, index=[dict.columnnum])

DataFrame(二維ndarray)

DataFrame(由數組、列表或元組組成的字典)

DataFrame(NumPy的結構化/記錄數組)

DataFrame(由Series組成的字典)

DataFrame(由字典組成的字典)

DataFrame(字典或Series的列表)

DataFrame(由列表或元組組成的列表)

DataFrame(DataFrame)

DataFrame(NumPy的MaskedArray)

構建DataFrame

數據矩陣,還可以傳入行標和列標

每個序列會變成DataFrame的一列。所有序列的長度必須相同

類似於“由數組組成的字典”

每個Series會成爲一列。如果沒有顯式制定索引,則各Series的索引會被合併成結果的行索引

各內層字典會成爲一列。鍵會被合併成結果的行索引。

各項將會成爲DataFrame的一行。索引的並集會成爲DataFrame的列標。

類似於二維ndarray

沿用DataFrame

類似於二維ndarray,但掩碼結果會變成NA/缺失值

 

df.reindex([x,y,...], fill_value=NaN, limit)

df.reindex([x,y,...], method=NaN)

df.reindex([x,y,...], columns=[x,y,...],copy=True)

返回一個適應新索引的新對象,將缺失值填充爲fill_value,最大填充量爲limit

返回適應新索引的新對象,填充方式爲method

同時對行和列進行重新索引,默認複製新對象。

df.drop(index, axis=0)丟棄指定軸上的指定項。
  
排序函數說明

df.sort_index(axis=0, ascending=True)

df.sort_index(by=[a,b,...])

根據索引排序
  
彙總統計函數說明
df.count()非NaN的數量
df.describe()一次性產生多個彙總統計

df.min()

df.min()

最小值

最大值

df.idxmax(axis=0, skipna=True)

df.idxmin(axis=0, skipna=True)

返回含有最大值的index的Series

返回含有最小值的index的Series

df.quantile(axis=0)計算樣本的分位數

df.sum(axis=0, skipna=True, level=NaN)

df.mean(axis=0, skipna=True, level=NaN)

df.median(axis=0, skipna=True, level=NaN)

df.mad(axis=0, skipna=True, level=NaN)

df.var(axis=0, skipna=True, level=NaN)

df.std(axis=0, skipna=True, level=NaN)

df.skew(axis=0, skipna=True, level=NaN)

df.kurt(axis=0, skipna=True, level=NaN)

df.cumsum(axis=0, skipna=True, level=NaN)

df.cummin(axis=0, skipna=True, level=NaN)

df.cummax(axis=0, skipna=True, level=NaN)

df.cumprod(axis=0, skipna=True, level=NaN)

df.diff(axis=0)

df.pct_change(axis=0)

返回一個含有求和小計的Series

返回一個含有平均值的Series

返回一個含有算術中位數的Series

返回一個根據平均值計算平均絕對離差的Series

返回一個方差的Series

返回一個標準差的Series

返回樣本值的偏度(三階距)

返回樣本值的峯度(四階距)

返回樣本的累計和

返回樣本的累計最大值

返回樣本的累計最小值

返回樣本的累計積

返回樣本的一階差分

返回樣本的百分比數變化

  
  
計算函數說明 

df.add(df2, fill_value=NaN, axist=1)

df.sub(df2, fill_value=NaN, axist=1)

df.div(df2, fill_value=NaN, axist=1)

df.mul(df2, fill_value=NaN, axist=1)

元素級相加,對齊時找不到元素默認用fill_value 

元素級相減,對齊時找不到元素默認用fill_value 

元素級相除,對齊時找不到元素默認用fill_value 

元素級相乘,對齊時找不到元素默認用fill_value 

df.apply(f, axis=0)將f函數應用到由各行各列所形成的一維數組上
df.applymap(f)將f函數應用到各個元素上
df.cumsum(axis=0, skipna=True)累加,返回累加後的dataframe

2.2.C.2 Dataframe常用函數

索引方式說明
df[val]選取DataFrame的單個列或一組列
df.ix[val]選取Dataframe的單個行或一組行
df.ix[:,val]選取單個列或列子集
df.ix[val1,val2]將一個或多個軸匹配到新索引
reindex方法將一個或多個軸匹配到新索引
xs方法根據標籤選取單行或者單列,返回一個Series
icol、irow方法根據整數位置選取單列或單行,並返回一個Series
get_value、set_value根據行標籤和列標籤選取單個值

2.2.C.3 Dataframe常用索引方式

    運算:

      默認情況下,Dataframe和Series之間的算術運算會將Series的索引匹配到的Dataframe的列,沿着列一直向下傳播。若索引找不到,則會重新索引產生並集。

  D.Index

    pandas的索引對象負責管理軸標籤和其他元數據(比如軸名稱等)。構建Series或DataFrame時,所用到的任何數組或其他序列的標籤都會被轉換成一個Index。Index對象不可修改,從而在多個數據結構之間安全共享。


主要的Index對象說明
Index最廣泛的Index對象,將軸標籤表示爲一個由Python對象組成的NumPy數組
Int64Index針對整數的特殊Index
MultiIndex“層次化”索引對象,表示單個軸上的多層索引。可以看做由元組組成的數組
DatetimeIndex存儲納秒級時間戳(用NumPy的Datetime64類型表示)
PeriodIndex針對Period數據(時間間隔)的特殊Index

2.2.D.1 主要的Index屬性

函數說明
Index([x,y,...])創建索引
append(Index)連接另一個Index對象,產生一個新的Index
diff(Index)計算差集,產生一個新的Index
intersection(Index)計算交集
union(Index)計算並集
isin(Index)檢查是否存在與參數索引中,返回bool型數組
delete(i)刪除索引i處元素,得到新的Index
drop(str)刪除傳入的值,得到新Index
insert(i,str)將元素插入到索引i處,得到新Index
is_monotonic()當各元素大於前一個元素時,返回true
is_unique()當Index沒有重複值時,返回true
unique()計算Index中唯一值的數組

一、常用鏈接:

1.Python官網:https://www.python.org/
2.各種庫的whl離線安裝包:http://www.lfd.uci.edu/~gohlke/pythonlibs/#scikit-learn
3.數據分析常用庫的離線安裝包(pip+wheels)(百度雲):http://pan.baidu.com/s/1dEMXbfN 密碼:bbs2


二、常用庫

1.NumPy

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

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

  A NumPy函數和屬性:

類型類型代碼說明
int8、uint8i1、u1有符號和無符號8位整型(1字節)
int16、uint16i2、u2有符號和無符號16位整型(2字節)
int32、uint32i4、u4有符號和無符號32位整型(4字節)
int64、uint64i8、u8有符號和無符號64位整型(8字節)
float16f2半精度浮點數
float32f4、f單精度浮點數
float64f8、d雙精度浮點數
float128f16、g擴展精度浮點數
complex64c8分別用兩個32位表示的複數
complex128c16分別用兩個64位表示的複數
complex256c32分別用兩個128位表示的複數
bool?布爾型
objectOpython對象
stringSn固定長度字符串,每個字符1字節,如S10
unicodeUn固定長度Unicode,字節數由系統決定,如U10

表2.1.A.1 NumPy類型

 

生成函數作用

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

  
矩陣函數說明

np.diag( ndarray)

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

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

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

np.dot(ndarray, ndarray)矩陣乘法
np.trace( ndarray)計算對角線元素的和
  
  

排序函數

說明

np.sort( ndarray)

排序,返回副本

np.unique(ndarray)

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

np.intersect1d( ndarray1, ndarray2)

np.union1d( ndarray1, ndarray2)

np.setdiff1d( ndarray1, ndarray2)

np.setxor1d( ndarray1, ndarray2)

返回二者的交集並排序。

返回二者的並集並排序。

返回二者的差。

返回二者的對稱差

  
一元計算函數說明

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

多元計算函數

說明

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(花式索引)
  
文件讀寫說明
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
表2.1.A.2 np常用函數
 

  B NumPy.ndarray函數和屬性:

ndarray.ndim獲取ndarray的維數
ndarray.shape獲取ndarray各個維度的長度
ndarray.dtype獲取ndarray中元素的數據類型
ndarray.T簡單轉置矩陣ndarray
表2.1.B.1 ndarray屬性
 
函數說明
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)
  
計算函數說明
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)

計算矩陣內積

排序函數

說明

ndarray.sort(axis=0)

排序,返回源數據

表2.1.B.2 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列....的元素
表2.1.B.3 ndarray索引/切片方式
 

  C NumPy.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)中均勻分佈的樣本值 

 2.1.C.1 random常用函數

  D 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的最小二乘解 

 2.1.D.1 linalg常用函數

2.Pandas

    pandas 是基於NumPy 的一種工具,該工具是爲了解決數據分析任務而創建的。Pandas 納入了大量庫和一些標準的數據模型,提供了高效地操作大型數據集所需的工具。pandas提供了大量能使我們快速便捷地處理數據的函數和方法。

  >>> from pandas import Series, DataFrame

  >>> import pandas as pd

  A.pandas

函數說明

pd.isnull(series)

pd.notnull(series)

判斷是否爲空(NaN)

判斷是否不爲空(not NaN)

  
  

2.2.A.1 pandas常用函數

  B.Series

    Series可以運用ndarray或字典的幾乎所有索引操作和函數,融合了字典和ndarray的優點。
屬性說明
values獲取數組
index獲取索引
namevalues的name
index.name索引的name
2.2.B.1 Series常用屬性
 
函數說明
Series([x,y,...])Series({'a':x,'b':y,...}, index=param1)生成一個Series
Series.copy()複製一個Series 

Series.reindex([x,y,...], fill_value=NaN)

Series.reindex([x,y,...], method=NaN)

Series.reindex(columns=[x,y,...])

重返回一個適應新索引的新對象,將缺失值填充爲fill_value

返回適應新索引的新對象,填充方式爲method

對列進行重新索引

Series.drop(index)丟棄指定項
Series.map(f)應用元素級函數 
  
排序函數說明
Series.sort_index(ascending=True)根據索引返回已排序的新對象
Series.order(ascending=True)根據值返回已排序的對象,NaN值在末尾
Series.rank(method='average', ascending=True, axis=0)爲各組分配一個平均排名

df.argmax()

df.argmin()

返回含有最大值的索引位置

返回含有最小值的索引位置

2.2.B.2 Series常用函數

    reindex的method選項:
      ffill, bfill     向前填充/向後填充
      pad, backfill   向前搬運,向後搬運
    rank的method選項
      'average'    在相等分組中,爲各個值分配平均排名
      'max','min'   使用整個分組中的最小排名
      'first'      按值在原始數據中出現的順序排名

  C.DataFrame

    DataFrame是一個表格型的數據結構,它含有一組有序的列,每列可以是不同的值類型(數值、字符串、布爾值等)。DataFrame既有行索引也有列索引,它可以被看做由Series組成的字典(共用同一個索引)。

    DataFrame可以通過類似字典的方式或者.columnname的方式將列獲取爲一個Series。行也可以通過位置或名稱的方式進行獲取。

    爲不存在的列賦值會創建新列。

    >>> del frame['xxx']  # 刪除列

屬性說明
valuesDataFrame的值
index行索引
index.name行索引的名字
columns列索引
columns.name列索引的名字
ix返回行的DataFrame
ix[[x,y,...], [x,y,...]]對行重新索引,然後對列重新索引
Tframe行列轉置
  

2.2.C.1 DataFrame常用屬性

 

函數說明

DataFrame(dict, columns=dict.index, index=[dict.columnnum])

DataFrame(二維ndarray)

DataFrame(由數組、列表或元組組成的字典)

DataFrame(NumPy的結構化/記錄數組)

DataFrame(由Series組成的字典)

DataFrame(由字典組成的字典)

DataFrame(字典或Series的列表)

DataFrame(由列表或元組組成的列表)

DataFrame(DataFrame)

DataFrame(NumPy的MaskedArray)

構建DataFrame

數據矩陣,還可以傳入行標和列標

每個序列會變成DataFrame的一列。所有序列的長度必須相同

類似於“由數組組成的字典”

每個Series會成爲一列。如果沒有顯式制定索引,則各Series的索引會被合併成結果的行索引

各內層字典會成爲一列。鍵會被合併成結果的行索引。

各項將會成爲DataFrame的一行。索引的並集會成爲DataFrame的列標。

類似於二維ndarray

沿用DataFrame

類似於二維ndarray,但掩碼結果會變成NA/缺失值

 

df.reindex([x,y,...], fill_value=NaN, limit)

df.reindex([x,y,...], method=NaN)

df.reindex([x,y,...], columns=[x,y,...],copy=True)

返回一個適應新索引的新對象,將缺失值填充爲fill_value,最大填充量爲limit

返回適應新索引的新對象,填充方式爲method

同時對行和列進行重新索引,默認複製新對象。

df.drop(index, axis=0)丟棄指定軸上的指定項。
  
排序函數說明

df.sort_index(axis=0, ascending=True)

df.sort_index(by=[a,b,...])

根據索引排序
  
彙總統計函數說明
df.count()非NaN的數量
df.describe()一次性產生多個彙總統計

df.min()

df.min()

最小值

最大值

df.idxmax(axis=0, skipna=True)

df.idxmin(axis=0, skipna=True)

返回含有最大值的index的Series

返回含有最小值的index的Series

df.quantile(axis=0)計算樣本的分位數

df.sum(axis=0, skipna=True, level=NaN)

df.mean(axis=0, skipna=True, level=NaN)

df.median(axis=0, skipna=True, level=NaN)

df.mad(axis=0, skipna=True, level=NaN)

df.var(axis=0, skipna=True, level=NaN)

df.std(axis=0, skipna=True, level=NaN)

df.skew(axis=0, skipna=True, level=NaN)

df.kurt(axis=0, skipna=True, level=NaN)

df.cumsum(axis=0, skipna=True, level=NaN)

df.cummin(axis=0, skipna=True, level=NaN)

df.cummax(axis=0, skipna=True, level=NaN)

df.cumprod(axis=0, skipna=True, level=NaN)

df.diff(axis=0)

df.pct_change(axis=0)

返回一個含有求和小計的Series

返回一個含有平均值的Series

返回一個含有算術中位數的Series

返回一個根據平均值計算平均絕對離差的Series

返回一個方差的Series

返回一個標準差的Series

返回樣本值的偏度(三階距)

返回樣本值的峯度(四階距)

返回樣本的累計和

返回樣本的累計最大值

返回樣本的累計最小值

返回樣本的累計積

返回樣本的一階差分

返回樣本的百分比數變化

  
  
計算函數說明 

df.add(df2, fill_value=NaN, axist=1)

df.sub(df2, fill_value=NaN, axist=1)

df.div(df2, fill_value=NaN, axist=1)

df.mul(df2, fill_value=NaN, axist=1)

元素級相加,對齊時找不到元素默認用fill_value 

元素級相減,對齊時找不到元素默認用fill_value 

元素級相除,對齊時找不到元素默認用fill_value 

元素級相乘,對齊時找不到元素默認用fill_value 

df.apply(f, axis=0)將f函數應用到由各行各列所形成的一維數組上
df.applymap(f)將f函數應用到各個元素上
df.cumsum(axis=0, skipna=True)累加,返回累加後的dataframe

2.2.C.2 Dataframe常用函數

索引方式說明
df[val]選取DataFrame的單個列或一組列
df.ix[val]選取Dataframe的單個行或一組行
df.ix[:,val]選取單個列或列子集
df.ix[val1,val2]將一個或多個軸匹配到新索引
reindex方法將一個或多個軸匹配到新索引
xs方法根據標籤選取單行或者單列,返回一個Series
icol、irow方法根據整數位置選取單列或單行,並返回一個Series
get_value、set_value根據行標籤和列標籤選取單個值

2.2.C.3 Dataframe常用索引方式

    運算:

      默認情況下,Dataframe和Series之間的算術運算會將Series的索引匹配到的Dataframe的列,沿着列一直向下傳播。若索引找不到,則會重新索引產生並集。

  D.Index

    pandas的索引對象負責管理軸標籤和其他元數據(比如軸名稱等)。構建Series或DataFrame時,所用到的任何數組或其他序列的標籤都會被轉換成一個Index。Index對象不可修改,從而在多個數據結構之間安全共享。


主要的Index對象說明
Index最廣泛的Index對象,將軸標籤表示爲一個由Python對象組成的NumPy數組
Int64Index針對整數的特殊Index
MultiIndex“層次化”索引對象,表示單個軸上的多層索引。可以看做由元組組成的數組
DatetimeIndex存儲納秒級時間戳(用NumPy的Datetime64類型表示)
PeriodIndex針對Period數據(時間間隔)的特殊Index

2.2.D.1 主要的Index屬性

函數說明
Index([x,y,...])創建索引
append(Index)連接另一個Index對象,產生一個新的Index
diff(Index)計算差集,產生一個新的Index
intersection(Index)計算交集
union(Index)計算並集
isin(Index)檢查是否存在與參數索引中,返回bool型數組
delete(i)刪除索引i處元素,得到新的Index
drop(str)刪除傳入的值,得到新Index
insert(i,str)將元素插入到索引i處,得到新Index
is_monotonic()當各元素大於前一個元素時,返回true
is_unique()當Index沒有重複值時,返回true
unique()計算Index中唯一值的數組
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章