一、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類別對應的個數