Numpy は大きなarrays
をまとめたもので、インタラクティブなセッションで作業するときに便利です。残念ながら、構造化されており、デフォルトarrays
でrecarrays
はうまく要約されていません。これを変更する方法はありますか?
デフォルトでは、array
アイテムが 1000 個以下の場合、すべてが表示されます。これ以上の項目がある場合array
はまとめて表示されます。で設定できますnp.set_printoptions(threshold=<number of items to trigger summarization>, edgeitems=<number of items to show in summary>)
。これは、次のような標準のデータ型では問題なく機能します。
np.set_printoptions(threshold=3, edgeitems=1)
print(np.zeros(3))
print(np.zeros(4))
結果は
[ 0. 0. 0.]
[ 0. ..., 0.]
ただし、より複雑なデータ型が使用される場合、要約はあまり役に立ちません。
print(np.zeros(4, dtype=[('test', 'i4', 3)]))
print(np.zeros(4, dtype=[('test', 'i4', 4)]))
[([0, 0, 0],) ..., ([0, 0, 0],)]
[([0, 0, 0, 0],) ..., ([0, 0, 0, 0],)]
配列は要約されていますが、サブデータ型は要約されていません。arrays
これは、複雑なデータ型を大量に使用する場合に問題になります。たとえばarray
np.zeros(1000, dtype=[('a', float, 3000), ('b', float, 10000)])
、ipython インスタンスがハングアップします。
np.array
タイプを直接使用するのではなく、サブクラス化して custom を作成することで、いくつかの回避策があります__repr__
。これは大規模なプロジェクトでは機能しますが、根本的な問題は解決されず、インタラクティブな Python セッションでデータをすばやく探索するには不便です。また、非常に長いコンソール出力を切り捨てるカスタム フィルターをエディターに実装しました。これはちょっとしたハックで、別の場所で Python セッションを開始するときには役に立ちません。
私が知らないnumpy設定、またはこれを修正できるpythonまたはipython設定はありますか?