【Python入門】Jupyter notebookで列の表示を設定する方法

print numpy

Jupyter notebookで配列を表示すると、途中の列が省略されることがあります。

省略された「・・・」を表示する方法です。

pandasの表示設定

pandasのDataFrameは、表示する最大の列数が初期設定されています。

設定の確認: describe_option()

pandasの表示設定は、describe_option()で確認できます。

import pandas as pd
pd.describe_option()

各種の設定が表示されますが、表示する最大カラム数は、display.max_columns

display.max_columns : int
    (省略)
    [default: 20] [currently: 20]

default(初期設定): 20列
currently(現在): 20列
初期設定では、20列まで表示され、現在の設定も、20列です。

20列での表示を確認します。

import numpy as np
pd.DataFrame([np.arange(40)])
  0 1 2 3 4 5 6 7 8 9 ... 30 31 32 33 34 35 36 37 38 39
0 0 1 2 3 4 5 6 7 8 9 ... 30 31 32 33 34 35 36 37 38 39
1 rows × 40 columns

カラムが最小から10列、最大から10列、最大値の20列まで表示されます。

設定の変更: set_option(‘display.max_columns’, 列数)

表示する最大カラム数は、set_option(‘display.max_columns’, 列数)で変更することができます。

pd.set_option('display.max_columns', 40)
pd.DataFrame([np.arange(40)])

省略されていた「・・・」がすべて表示されていますね。

変更後の表示設定を、describe_option()で確認します。

pd.describe_option()
display.max_columns : int
    (省略)
    [default: 20] [currently: 40]

currently(現在)の設定が、40列になっています。

numpyの表示設定

numpyは、 表示する最大の要素数が初期設定されています。

設定の確認: get_printoptions()

numpyの表示設定は、get_printoptions()で確認できます。

import numpy as np
np.get_printoptions()
{'edgeitems': 3,
 'threshold': 1000,
 'floatmode': 'maxprec',
 'precision': 8,
 'suppress': False,
 'linewidth': 75,
 'nanstr': 'nan',
 'infstr': 'inf',
 'sign': '-',
 'formatter': None,
 'legacy': False}

この設定では、
‘threshold’(しきい値)が 1000なので、表示する要素が1000を超えたときに、
‘edgeitems'(省略時に表示する要素数)が3なので、最小値から3要素、最大値から3要素
が表示され、その間の要素が省略されます。

要素が900とすると、すべての要素が表示されますが、要素が1020のときは、 最小値から3要素、最大値から3要素だけが表示さます。

設定の変更: set_printoptions(threshold=要素数)

表示する最大の要素数は、set_printoptions(threshold=要素数)で変更することができます。

np.set_printoptions(threshold=10)
np.arange(12)
array([ 0,  1,  2, ...,  9, 10, 11])

パラメーターthresholdを1000から10に小さくしました。
要素数が10より大きい12なので、中間の要素が「・・・」で表示されています。

すべての要素を表示するときは、要素数を無限大( np.inf )に設定する。

np.set_printoptions(threshold=np.inf)
np.arange(12)
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])

すべての要素が表示されています。

1行に表示: set_printoptions(linewidth=文字数)

要素が増えると、改行して表示されます。

np.set_printoptions(threshold=1000) #デフォルト
np.arange(40).reshape(2, 20)
array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
        16, 17, 18, 19],
       [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
        36, 37, 38, 39]])

linewidth(1行の文字数)のデフォルトは75文字です。
[0 ~ 19]は1行に収まらないので、改行して表示されています。

linwidthを変更して、1行に表示します。

np.set_printoptions(linewidth=200)
np.arange(40).reshape(2, 20)
array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
       [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39]])
​

1行200文字で表示されます。

画面に収まらないときは、スクロールバーが設置されます。

まとめ

  • 配列の表示設定を確認することができた
  • 配列を省略させずに表示させることができた

関連情報

タイトルとURLをコピーしました