LoginSignup
31
32

More than 5 years have passed since last update.

pythonのnumpy.arrayの統計量一覧を表示するワンライナー

Last updated at Posted at 2017-09-27

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

Jupyterだとさらに綺麗な表示になる。
Screenshot from 2017-09-27 12-46-39.png

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

31
32
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
32