np.set_printoptionsは、numpy配列のかなりのプリントをカスタマイズできます。しかし、異なるユースケースについては、異なる印刷オプションが必要です。numpyのローカルスコープset_printoptions
理想的には、毎回オプション全体を再定義する必要はありません。私は、ローカルスコープを使用して上のようなものを考えていた:
with np.set_printoptions(precision=3):
print my_numpy_array
を、エラーがスローされるようしかし、set_printoptions
は(AttributeError: __exit__
)、with
文をサポートしていないようです。あなた自身のかなりの印刷クラスを作成せずにこの仕事をする方法はありますか?
class PrettyPrint():
def __init__(self, **options):
self.options = options
def __enter__(self):
self.back = np.get_printoptions()
np.set_printoptions(**self.options)
def __exit__(self, *args):
np.set_printoptions(**self.back)
としてそれを使用する:これは私がように私自身のコンテキストマネージャを作成することができることを知っている、ある、しかし、あり
>>> print A
[ 0.29276529 -0.01866612 0.89768998]
>>> with PrettyPrint(precision=3):
print A
[ 0.293 -0.019 0.898]
(好ましくは、すでにビルトイン)よりもより簡単なもの新しいクラスを作成しますか?
コンテキストマネージャを作成するコンパクトな方法があります。[ここに表示](http://stackoverflow.com/a/2891805/190597) – unutbu
@unutbu 'contextlib'(その答え)について知らなかった。ありがとう!しかし、それはまだ新しい関数を定義することを意味します..私は何もないよりも良いと思います。 –