Rのsummary関数のように、arrayの統計量を一覧にして表示させる方法。
1. ワンライナーのコード
import pandas as pd
pd.DataFrame(pd.Series(arr.ravel()).describe()).transpose()
これだけで、numpy.arrayの
- サイズ
- 平均値
- 標準偏差
- 最小値
- 第一四分位
- 中央値
- 第三四分位
- 最大値
を表示してくれる。
2. 活用例
コード
import numpy as np
import pandas as pd
arr = np.random.randn(100,100)
pd.DataFrame(pd.Series(arr.ravel()).describe()).transpose()
出力
count mean std min 25% 50% 75% max
0 10000.0 0.000254 1.007792 -4.234695 -0.676233 0.004269 0.676998 3.633816
3. 関数化
上記のコードをただ関数化しただけ。さらに便利に使いたい場合はこれを用いると良い。
import pandas as pd
def summary(arr):
return pd.DataFrame(pd.Series(arr.ravel()).describe()).transpose()
4. コードの解説
ravel
arrayが2次元以上の時、このままだとpd.Series(arr)の部分が上手く動かないので、このravelによって1次元配列に変換する。
参照 : https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.ravel.html
describe
統計量を計算する。
参照 : https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.describe.html
transpose
デフォルトだと、統計量が縦に並んでやや見づらい。
そのためこのtransposeメソッドを使うことによって行と列を入れ替え、統計量を見やすくする。
参照 : https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.transpose.html