鉴于以下数据框和left-x
列:
| | left-x | left-y | right-x | right-y |
|-------|--------|--------|---------|---------|
| frame | | | | |
| 0 | 149 | 181 | 170 | 175 |
| 1 | 149 | 181 | 170 | 175 |
| 2 | 149 | 181 | 170 | 175 |
| 3 | 149 | 181 | 170 | 175 |
我如何使用left-x
标准偏差scikit-learn library?
您可以通过标准偏差进行标准化,而无需使用sci-kit-learn,如下所示:
df['left-x'] = df['left-x'] / df['left-x'].std()
或者,如果您还想要中心数据:
df['left-x'] = (df['left-x'] - df['left-x'].mean())/df['left-x'].std()
这里df
是你的asl.df[l]
变量。
.std()
方法给出了给定轴上数据帧的标准偏差。通过首先选择一列,仅为该列计算标准偏差。
如果你需要做很多事情并希望避免混乱,你可以把它包装成一个函数,例如
def std_norm(df, column):
c = df[column]
df[column] = (c - c.mean())/c.std()
你称之为:
std_norm(df, 'left-x')
请注意,这会就地更新传递的DataFrame。
您可以使用sklearn.preprocessing
模块中的缩放功能。
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
sc.fit(df['left-x'])
df['left-x'] = sc.transform(df['left-x'])