一、標準化
**實現(z_score方法標準化)
def standardlize(data, inf2nan=true, axis=1):
'''引數
-----------
data: pd.series/pd.dataframe/np.array, 待標準化的序列
inf2nan: 是否將 np.inf 和 -np.inf 替換成 np.nan。預設為 true
axis=1: 在 data 為 pd.dataframe 時使用,如果 series 為 pd.dataframe,沿哪個方向做標準化。0 為對每列做標準化,1 為對每行做標準化
返回-----------
標準化後的因子資料
'''if isinstance(data,pd.dataframe):
value = data.copy()
if axis==1:
long = value.shape[0]
for i in range(long):
s = value.iloc[i,:]
if inf2nan==true:
s[np.isinf(s)]=np.nan
mean = np.mean(s.dropna())
std = np.std(s.dropna(),ddof=1)
value.iloc[i,:] = (s-mean)/std
else:
s1 = s[~np.isinf(s)]
mean = np.mean(s1)
std = np.std(s1,ddof=1)
value.iloc[i,:] = (s-mean)/std
return value
elif axis==0:
width = value.shape[1]
for j in range(width):
s = value.iloc[:,j]
if inf2nan==true:
s[np.isinf(s)]=np.nan
mean = np.mean(s.dropna())
std = np.std(s.dropna(),ddof=1)
value.iloc[:,j] = (s-mean)/std
else:
s1 = s[~np.isinf(s)]
mean = np.mean(s1)
std = np.std(s1,ddof=1)
value.iloc[:,j] = (s-mean)/std
return value
else:
return('axis值有誤')
elif isinstance(data,pd.series):
value = data.copy()
if inf2nan==true:
value[np.isinf(value)]=np.nan
mean = np.mean(value.dropna())
std = np.std(value.dropna(),ddof=1)
value = (value-mean)/std
return value
else:
s = value[~np.isinf(value)]
mean = np.mean(s)
std = np.std(s,ddof=1)
value = (value-mean)/std
return value
else:
print('data不是pd.series和pd.dataframe型別')
return
最大最小標準化 數值 標準化的好處及常見處理方法
在多指標評價體系中,由於各評價指標的性質不同,通常具有不同的量綱和數量級。當各指標間的水平相差很大時,如果直接用原始指標值進行分析,就會突出數值較高的指標在綜合分析中的作用,相對削弱數值水平較低指標的作用。因此,為了保證結果的可靠性,需要對原始指標資料進行標準化處理。資料的標準化 normaliza...
資料預處理之標準化
近來趁專案間隔期,工作不是太多,也在利用空餘時間把資料分析的完整流程用python實現一遍,也恰好整理下這幾年手頭的一些資料,順序可能比較亂,後期再慢慢調整。資料的標準化 normalization 是將資料按照一定規則縮放,使之落入乙個小的特定區間。這樣去除資料的單位限制,將其轉化為無量綱的純數值...
資料預處理 資料標準化
x train np.array 1,1,2 2,0,0 0,1,1 min max scaler preprocessing.minmaxscaler x train minmax min max scaler.fit transform x train print x train minmax ...