numpy和pandas 各種比較常見的用法總結

一、numpy

1、numpy中reshape的用法

經常會遇到np.reshape(a,-1) 或者np.reshape(-1,a) 這樣的情況(a=1,2,3,4,5),-1是一個比較神奇的功能,意思是我只要確定需要分成a行後者a列,剩下的數據你隨便分,反正結果都一樣。

例:

arr =np.array([1,2,3,4,5,6,7,8,9,10,11,12])一個一維的ndarry數組,長度爲9

如果我想把它變成3x3的矩陣,可以直接arr.reshape(3,4),也可以用以上方法arr.reshape(3,-1) 或者arr.reshape(-1,4) ,最終的結果都一樣

 

2、numpy中zeros_like的用法

numpy.zeros_like(a,dtype=None, order='K', subok=True)

該行代碼會返回形狀和數據類型和a相同且元素都爲0的數組

 

3、array和asarray的區別

array和asarray都可以將結構數據轉化爲ndarray,但是主要區別就是當數據源是ndarray時,array仍然會copy出一個副本,佔用新的內存,但asarray不會,意思是對數據源進行重新賦值的話,array轉化後的數據不變,asarray轉化後的數據也會跟着數據源重新被賦值。

 

二、pandas

1、DataFrame

 取出DataFrame的所有標籤名:

columns = data.columns

 

對DataFrame中的缺失值進行統計:

null_counts = data.isnull().sum()   # 統計所有有缺失值列的缺失值個數,要統計某一列直接進行指定即可,比如data['target'].isnull().sum() 

 

去掉缺失值最多的列:

data= data.drop('target',axis=1)  # 去掉缺失值最多的列,以target爲例

 

去掉有缺失值的樣本:

data= data.dropna(axis=0)  # 去掉有缺失值的樣本

 

對缺失值進行填充:

notnull_feature = data.fillna(np.mean(0))  # 這裏填充的是每一列的平均值,也可以直接填0

 

統計數據類型以及篩選:

dtypes = data.dtypes.value_counts()

object_columns = data.select_dtypes(include=['object'])   #有字符型的數據會被選出來分析

 

轉換數據類型astype():

data = data.astype('float')   #. type 獲取數據類型 ;dtype 獲取數組元素的類型

 

將數據中的文本轉化爲數字:

data = pd.get_dummies(data,dummy_na=True)

 

一般數據比較大的時候,我們可以先讀取第一行,觀察數據結構,或者直接打印前五行

data_0 = data.iloc[0]  # 第一行

data_5 = data.head  # 前五行

data_info = data.info() #顯示數據綜合信息,個數、類型。。。

 

DataFrame數據結構非常靈活,可以通過多種方法提取出自己想要的列或者想要的行:

data= data[(data['target']=='car') | (data['target']=='truck')]   # 提取某一列下car和truck兩個分類,如果該列還有其他類別,該類別以及類別橫向對應的數據都會捨棄

 

去掉重複項:

data.drop_duplicates()

 

傳入字典,可以對某一列的類別進行替換:

 status_replace = {'loan_status':{'Fully Paid':1,'Charged Off':0} }

 data= data.replace(status_replace)  #將loan_status列的兩個屬性進行替換

 

橫向拼接:

 data= pd.concat([loans, dummy_df], axis=1)   # 橫向拼接

 

特徵列與標籤列進行分離:

feature = data.iloc[:,data.columns!='Class']
labels = data.iloc[:,data.columns=='Class']

 

2、Series

 

如果要統計某一列的唯一值可以用unique(),只支持Series數據類型因此使用的時候只能針對DataFrame某一列:

unique = data['target'].unique()

 

DataFrame數據結構可以看做是很多個Series共用一列index,有個values_count()可以統計某列數據的類別分別是多少,只支持Series數據類型因此使用的時候只能針對DataFrame某一列:

values_count = data['TARGET'].value_counts()

values_count .index   #TARGET的類別

values_count .values  #TARGET類別對應的個數

發佈了284 篇原創文章 · 獲贊 75 · 訪問量 54萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章