NumPy配列の表示設定:省略せずに全部表示する方法


 

Pythonでデータ分析を行う際、NumPyは欠かせないライブラリです。特に、大量のデータを扱う際にNumPyのndarrayは非常に便利ですが、デフォルトの設定では配列が大きすぎると表示が省略されてしまいます。この記事では、NumPy配列をprint()で表示する際に、その省略表示を制御する方法について詳しく解説します。


 

NumPyの表示省略とは?

 

NumPy配列は、データ量が膨大になると、コンソール上での表示が一部省略されることがあります。これは、画面を大量の数値で埋め尽くさないようにするための親切な機能ですが、デバッグ時やデータの内容を詳細に確認したい場合には不便です。

例えば、以下のような大きな配列をprint()すると、中央部分が省略されて表示されます。

Python
 
import numpy as np

# 100要素の配列を作成
arr = np.arange(100)
print(arr)

出力例:

[ 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 40 41 42 43 44 45 46 47
 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
 96 97 98 99]

(実際にはもっと大きな配列で省略が起こります。)


 

配列の省略表示を制御する方法

 

NumPyの表示設定は、np.set_printoptions()関数を使って変更できます。この関数にはいくつかの重要な引数がありますが、特に「省略しない」設定でよく使うのはthresholdedgeitemsです。

 

thresholdで要素の表示数を設定する

 

threshold引数は、配列の要素がこの値を超えると省略表示を開始するしきい値を設定します。デフォルトでは1000に設定されています。これをsys.maxsizeなどの非常に大きな値に設定することで、事実上すべての要素を表示させることができます。

Python
 
import numpy as np
import sys

# thresholdを非常に大きな値に設定し、省略しないようにする
np.set_printoptions(threshold=sys.maxsize)

arr = np.arange(100) # 例として100要素の配列
print(arr)

この設定により、どれだけ大きな配列でも全ての要素が表示されるようになります。ただし、非常に大きな配列を表示すると、メモリを大量に消費したり、出力に時間がかかったりする点には注意が必要です。

 

edgeitemsで表示される端の要素数を設定する

 

edgeitems引数は、配列が省略表示される場合に、各次元の最初と最後に表示される要素の数を設定します。デフォルトは3です。

Python
 
import numpy as np

# thresholdはデフォルトのまま(1000)で、edgeitemsを変更
np.set_printoptions(edgeitems=5) # 各次元の端から5要素を表示

arr = np.arange(100)
print(arr)

この設定は、全てを表示するのではなく、「端のいくつかだけ見られれば良い」という場合に便利です。


 

設定を元に戻す方法

 

一時的に表示設定を変更した場合、元の設定に戻したいこともあるでしょう。np.set_printoptions()の引数を省略して呼び出すと、デフォルトの設定に戻すことができます。

Python
 
import numpy as np
import sys

# 全て表示する設定
np.set_printoptions(threshold=sys.maxsize)
arr = np.arange(10)
print("省略なし:", arr)

# デフォルトの設定に戻す
np.set_printoptions()
print("デフォルト:", arr)

出力例:

省略なし: [0 1 2 3 4 5 6 7 8 9]
デフォルト: [0 1 2 3 4 5 6 7 8 9]

(この例では配列が小さいため省略されませんが、大きな配列で試すと違いがわかります。)


 

まとめ

 

NumPy配列の表示省略を制御することで、データの内容をより詳細に確認できるようになります。

  • np.set_printoptions(threshold=sys.maxsize): 配列の全ての要素を表示したい場合に設定します。

  • np.set_printoptions(edgeitems=N): 省略表示される場合に、各次元の端からN個の要素を表示したい場合に設定します。

  • np.set_printoptions(): 設定をデフォルトに戻します。

これらの設定を適切に使い分けることで、NumPyを使ったデータ分析の効率を上げることができます。状況に応じて最適な表示方法を選択しましょう。

■プロンプトだけでオリジナルアプリを開発・公開してみた!!

■AI時代の第一歩!「AI駆動開発コース」はじめました!

テックジム東京本校で先行開始。

■テックジム東京本校

「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。

<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。

<月1開催>放送作家による映像ディレクター養成講座

<オンライン無料>ゼロから始めるPython爆速講座