[解決済み】科学的記数法なしで、与えられた精度でnumpy.arrayをpretty-printするには?
2022-03-24 20:20:50
質問
を印刷する方法はないのでしょうか?
numpy.arrays
のような方法で、例えば、このように表示されます。
x = 1.23456
print '%.3f' % x
を表示させたい場合は
numpy.array
の浮動小数点が表示され、しばしば「scientific」形式で表示されます。しかし
numpy.array
どうやら文字列として表示する必要があるようだ。
%s
. これに対する解決策はあるのでしょうか?
どのように解決するのですか?
を使用することができます。
set_printoptions
で、出力の精度を設定します。
import numpy as np
x=np.random.random(10)
print(x)
# [ 0.07837821 0.48002108 0.41274116 0.82993414 0.77610352 0.1023732
# 0.51303098 0.4617183 0.33487207 0.71162095]
np.set_printoptions(precision=3)
print(x)
# [ 0.078 0.48 0.413 0.83 0.776 0.102 0.513 0.462 0.335 0.712]
そして
suppress
は、小さな数に対して科学的記法を使用しないようにします。
y=np.array([1.5e-10,1.5,1500])
print(y)
# [ 1.500e-10 1.500e+00 1.500e+03]
np.set_printoptions(suppress=True)
print(y)
# [ 0. 1.5 1500. ]
をご覧ください。 set_printoptions のドキュメント をクリックすると、他のオプションが表示されます。
印刷オプションをローカルに適用する
NumPy 1.15.0 以降を使用している場合は、以下のようになります。
numpy.printoptions
コンテキスト・マネージャーを使用します。
例えば
with-suite
precision=3
と
suppress=True
が設定されます。
x = np.random.random(10)
with np.printoptions(precision=3, suppress=True):
print(x)
# [ 0.073 0.461 0.689 0.754 0.624 0.901 0.049 0.582 0.557 0.348]
しかし、その外側にある
with-suite
印刷オプションはデフォルトの設定に戻ります。
print(x)
# [ 0.07334334 0.46132615 0.68935231 0.75379645 0.62424021 0.90115836
# 0.04879837 0.58207504 0.55694118 0.34768638]
以前のバージョンのNumPyを使用している場合は、コンテキストマネージャーを作成することができます。 を自分で作成します。例えば
import numpy as np
import contextlib
@contextlib.contextmanager
def printoptions(*args, **kwargs):
original = np.get_printoptions()
np.set_printoptions(*args, **kwargs)
try:
yield
finally:
np.set_printoptions(**original)
x = np.random.random(10)
with printoptions(precision=3, suppress=True):
print(x)
# [ 0.073 0.461 0.689 0.754 0.624 0.901 0.049 0.582 0.557 0.348]
浮動小数点数の末尾からゼロが取り除かれないようにするため。
np.set_printoptions
を持つようになりました。
formatter
パラメータで、各タイプのフォーマット関数を指定することができます。
np.set_printoptions(formatter={'float': '{: 0.3f}'.format})
print(x)
と表示されます。
[ 0.078 0.480 0.413 0.830 0.776 0.102 0.513 0.462 0.335 0.712]
ではなく
[ 0.078 0.48 0.413 0.83 0.776 0.102 0.513 0.462 0.335 0.712]
関連
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み] NumPyの配列を切り詰めずに、完全に表示するにはどうしたらよいですか?
-
[解決済み] 改行やスペースを入れずに印刷する方法
-
[解決済み] どうすれば、文字列中のリテラルな中抜き文字を印刷し、また.formatを使用することができるのでしょうか?
-
[解決済み] コンマを桁区切りとして数字を印刷するには?
-
[解決済み] JavaからXMLをきれいに印刷する方法は?
-
[解決済み] ネストされた辞書をきれいに印刷するには?
-
[解決済み】プログラムを停止/終了させることなく、完全な例外トレースバックをキャッチして表示する方法は?
-
[解決済み】Goを使ってJSONをpretty-printするにはどうすればいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピロウズ画像色処理の具体的な活用方法
-
Pythonによるjieba分割ライブラリ
-
Python入門 openを使ったファイルの読み書きの方法
-
任意波形を生成してtxtで保存するためのPython実装
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み】 'numpy.float64' オブジェクトは反復可能ではない