scikit-learnのiris(あやめ)のデータを用います。
In [30]:
import pandas as pd
from sklearn import datasets
iris = datasets.load_iris()
arr = iris.data
df = pd.DataFrame(arr, columns=iris.feature_names)
%matplotlib inline
In [2]:
df
Out[2]:
In [3]:
df.columns
Out[3]:
'sepal length (cm)'を用います。
In [5]:
s = df['sepal length (cm)']
データ数をカウントする。
In [6]:
s.count()
Out[6]:
データの最大と最小とレンジ(範囲)
In [9]:
print(s.max())
print(s.min())
print('レンジ=',s.max()-s.min())
等間隔離散化によりビンを作成
In [12]:
cut = pd.cut(s, 10)
cut
Out[12]:
In [19]:
print(type(cut))
print(type(cut[0]))
Categoriesが順序を表している。
In [18]:
cut_sort = cut.sort_values()
cut_sort
Out[18]:
等間隔離散化の説明は、離散化の学習の際に詳しく行うので飛ばします。
In [24]:
cut_point = cut_sort.unique()
cut_point
Out[24]:
度数分布
In [48]:
cut.groupby(cut).count()
Out[48]:
In [43]:
pd.DataFrame(cut,columns=[cut.name]).groupby(cut.name).
Out[43]:
In [37]:
cut.name
Out[37]:
ヒストグラムは簡単に作れる。
In [32]:
s.hist(bins=10)
Out[32]:
In [8]:
print(s.mean())
print(s.median())
print(s.mode())
分位点(パーセンタイル)
In [49]:
s.quantile([.25,.5,.75])
Out[49]:
偏差
In [50]:
s - s.mean()
Out[50]:
偏差の平方
In [ ]:
(s - s.mean())**2
偏差平方和
In [53]:
((s - s.mean())**2).sum()
Out[53]:
分散
In [54]:
((s - s.mean())**2).mean()
Out[54]:
In [55]:
s.var()
Out[55]:
varのデフォルトは不偏分散
標本分散(Nで割る)
In [56]:
s.var(ddof=0)
Out[56]:
不偏分散(N-1で割る)
In [57]:
s.var(ddof=1)
Out[57]:
標準偏差
In [59]:
(((s - s.mean())**2).mean())**(1/2)
Out[59]:
不偏標準偏差
In [60]:
s.std()
Out[60]:
標本標準偏差
In [61]:
s.std(ddof=0)
Out[61]:
要約統計量
In [62]:
df.describe()
Out[62]:
In [64]:
df.describe(percentiles=[.05,.25,.5,.75,.95])
Out[64]:
変動係数(CV)
In [65]:
s.std()/s.mean()
Out[65]:
標準化
In [66]:
(s - s.mean())/s.std()
Out[66]:
In [ ]: