NumPy和Pandas總結
-
- ndarray, 具有向量算術運算和複雜廣播能力的快速且節省空間的多維陣列。
- 用於對整組資料進行快速運算的標準數學函式(無需編寫迴圈)。
- 用於讀寫磁碟資料的工具以及用於操作記憶體對映檔案的工具。
- 線性代數、隨機數生成以及傅立葉變換功能。
- 用於整合C、C++、Fortran等語言編寫的程式碼的工具。
首先要匯入numpy庫:import numpy as np
A NumPy函式和屬性:
型別 | 型別程式碼 | 說明 |
表2.1.A.1 NumPy型別
生成函式 | 作用 |
np.array( x)
np.array( x, dtype)
將輸入資料轉化為一個ndarray
將輸入資料轉化為一個型別為type的ndarray
np.asarray( array ) 將輸入資料轉化為一個新的(copy)ndarraynp.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.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[ bool_ndarray ]
注:bool_ndarray表示bool型別的ndarray
選取為true的元素ndarray[[x,y,m,n]]...
選取順序和序列為x、y、m、n的ndarrayndarray[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函式和屬性:
函式 | 說明 |
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的優點。
屬性 | 說明 |
函式 | 說明 |
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'] # 刪除列
屬性 | 說明 |
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) 累加,返回累加後的dataframe2.2.C.2 Dataframe常用函式
索引方式 | 說明 |
2.2.C.3 Dataframe常用索引方式
運算:
預設情況下,Dataframe和Series之間的算術運算會將Series的索引匹配到的Dataframe的列,沿著列一直向下傳播。若索引找不到,則會重新索引產生並集。
D.Index
pandas的索引物件負責管理軸標籤和其他元資料(比如軸名稱等)。構建Series或DataFrame時,所用到的任何陣列或其他序列的標籤都會被轉換成一個Index。Index物件不可修改,從而在多個數據結構之間安全共享。
主要的Index物件 | 說明 |
2.2.D.1 主要的Index屬性
函式 | 說明 |
2.2.D.2 常用Index函式
相關推薦
NumPy和Pandas總結
ndarray, 具有向量算術運算和複雜廣播能力的快速且節省空間的多維陣列。 用於對整組資料進行快速運算的標準數學函式(無需編寫迴圈)。 用於讀寫磁碟資料的工具以及用於操作記憶體對映檔案的工具。 線性代數、隨機數生成以及傅立葉變換功能。 用於整合C、C++
總結(5)--- Numpy和Pandas庫常用函數
nump span 多個 uniq ffi 單位 變換 divide ins 二、常用庫 1.NumPy NumPy是高性能科學計算和數據分析的基礎包。部分功能如下: ndarray, 具有矢量算術運算和復雜廣播能力的快速且節省空間的多維數組。 用於對整組數據進
【轉載】python安裝numpy和pandas
nump 列數 tro pac nio libs hub linux環境 github 轉載:原文地址 http://www.cnblogs.com/lxmhhy/p/6029465.html 最近要對一系列數據做同比比較,需要用到numpy和pandas來計算,不過使
numpy和pandas axis的差異
int head shanghai taf 分布 cit align drop ros 1.numpy arr = np.random.randn(5,4)#正態分布數據 print(arr) print(arr.sum()) # 數組/矩陣中所有元素求和,等價於np.s
numpy和pandas的常用操作
一、numpy: 1、np.zero np.zeros(5) 1行5列 結果:array([ 0., 0., 0., 0., 0.]) np.zeros((2, 1)) 2行1列 結果:array([[ 0.], [ 0.]]) 2、矩陣乘法 np.dot
python中的numpy和pandas---機器學習實戰第一篇KNN
http://www.cnblogs.com/prpl/p/5537417.html 熟悉其基本操作 from numpy import * import operator def data(): datas = array([[1.0,1.1],[1.0,1.0],[0,0]
Numpy和Pandas使用整理
二、常用庫 1.NumPy NumPy是高效能科學計算和資料分析的基礎包。部分功能如下: ndarray, 具有向量算術運算和複雜廣播能力的快速且節省空間的多維陣列。 用於對整組資料進行快速運算的標準數學函式(無需編寫迴圈)。 用於讀寫磁碟資料的工具
Numpy和Pandas
NumPy有著種種出色的特性(優化了Python計算過程),其本身則難以獨支資料分析這座大廈,這是一方面是由於NumPy幾乎僅專注於陣列處理,另一方面則是資料分析牽涉到的資料特性眾多,需要處理各種表格和混雜資料,遠非純粹的陣列(NumPy)方便解決的,而這就是
Numpy和pandas不同標籤切片的區別
最近做資料分析的時候,運算結果總是與預期不一樣,檢查後,原因在於:不同型別標籤的切片,會有不同結果。 以Numpy和DataFrame為例: (1)關於numpy的切片: 可以看到,1:numpy切片的索引標籤必須是整數; 2:如果切片的標籤是整數,則不包含末端,如arr1[:
《Python資料分析常用手冊》一、NumPy和Pandas篇
‘first‘ 按值在原始資料中出現的順序排名 C.DataFrame DataFrame是一個表格型的資料結構,它含有一組有序的列,每列可以是不同的值型別(數值、字串、布林值等)。DataFrame既有行索引也有列索引,它可以被看做由Series組成的字典(共用同一個索引
利用numpy和pandas處理csv檔案中的時間
環境:numpy,pandas,python3 在機器學習和深度學習的過程中,對於處理預測,迴歸問題,有時候變數是時間,需要進行合適的轉換處理後才能進行學習分析,關於時間的變數如下所示,利用pandas和numpy對csv檔案中時間進行處理。 date
python資料處理之numpy和pandas(上)
import numpy as np a = np.random.random((2,4)) print(a) print(np.sum(a)) print(np.max(a)) print(np.min(a)) print(np.sum(a,axis=1)) print(np.min(a,axis=0))
Python下載numpy和pandas踩過的大坑
from mic python3 edi ucc directory exe scripts .whl Python下載numpy和pandas踩過的大坑 最直接的安裝方法是在python的scripts中執行 pip install pandas後,能出現Succes
Python中numpy和pandas中axis淺談
在Python中軸是比較難懂概念,先從座標軸說起。 n 維空間裡有 n 個座標軸,並且座標軸互相垂直,每一個點相對於一條座標軸都有唯一的一個座標值。對同一條座標軸來說,座標值相同的點在同一個 n-1 維的“平面”上。任意取一個“平面”,我們就能定義“同一個座標軸上的點”
Ubuntu 16.04安裝numpy和pandas
numpy 安裝Numpy 的安裝檔案地址是這裡。裡面有不同版本,有開發者版本和穩定版本。同時根據不同的系統選擇不同的版本進行下載。或者開啟終端sudo apt-get install python-numpypandas安裝 在終端 terminal 執行:sudo apt
Python使用numpy和pandas模擬轉盤抽獎遊戲
之前寫過一個類似的程式碼,不過都是用的Python內建物件,詳見幾行Python程式碼模擬輪盤抽
python中numpy和pandas介紹
adc rac col column start sta 缺少 array類 相加 numpy和pandas是python中用於處理數據的兩個庫。numpy介紹:numpy用於處理array,且array中數據類型必須一致。下面以代碼備註的方式介紹。 #START impo
python3.5+win7 安裝 numpy 和scipy的總結
.com com uci 自動 nac one win7 org 問題 1.安裝numpy。 官網下載numpy。下載地址為https://pypi.Python.org/pypi/numpy。選擇與Python版本相對應的numpy版本。之後在python35的
python包-numpy的函式和屬性總結(一)
NumPy是高效能科學計算和資料分析的基礎包。 接下來為大家總結一些它的一些基礎知識。 目錄 0.匯入numpy的包 1.資料型別 2.常用函式 3.NumPy.ndarray的屬性 4.NumPy.ndarray的函式 5.NumPy.ndarray的索引與切片
知識點-numpy,pandas和matplotlib
參考筆記: 一、numpy 1、建立ndarray(可以是多維的但是資料型別必須一致):np.array() #舉例 np.array(range(100)) *T 轉置 *dtype 型別 *size 大小 *ndim 維數 *shape 維度大小(返回元組) #resha