Python の指数表記

Manav Narula 2023年1月30日
  1. format() 関数を使った Python の指数表記での値の表現
  2. Python で指数表記で値を表現するには fstrings を使用する
  3. 関数 numpy.format_float_scientific() を用いて値を指数表記で表ま
Python の指数表記

指数表記は、非常に大きな数や小さな数をコンパクトでわかりやすく表現するために使われます。このような表記法はプログラミングでも使用されており、例えば 6000000 は 6E+6 と表現できます。同様に、0.0000066E-6 と表現できます。

このチュートリアルでは、Python でこのような指数表記を使用する方法を説明します。

format() 関数を使った Python の指数表記での値の表現

format 関数は、文字列を特定の形式でフォーマットするために使用されます。この関数を使用して、以下のように大小の浮動小数点値をそれぞれの指数形式に変換することができます。

no1 = float(5800000.00000)
no2 = float(0.0000058)
print(format(no1, ".1E"))
print(format(no2, ".1E"))

出力:

5.8E+06
5.8E-06

ここで、.1E は指定された書式設定パターンです。E は指数表記を示しており、指数表記で値を表示し、.1 は小数点以下に 1 桁の数字があることを指定します。

Python で指数表記で値を表現するには fstrings を使用する

Python 3.6 以降では、fstrings を使って文字列を整形することができます。この方法はより正確でエラーが発生しにくいと考えられています。これは従来の format() 関数に比べてコードの可読性を向上させます。以下に示すように、fstrings は文字列の表現に役立ちます。

no1 = float(5800000.00000)
no2 = float(0.0000058)
print(f"{no1:.1E}")
print(f"{no2:.1E}")

出力:

5.8E+06
5.8E-06

フォーマットのパターンは上のメソッドと同じであることに注意してください。

関数 numpy.format_float_scientific() を用いて値を指数表記で表ま

Python の NumPy モジュールには関数 format_float_scientific() があります。

パラメータ precision を用いて 10 進数の総桁数を指定し、exp_digits を用いて指数表記に必要な桁数を指定することができます。他にも signuniquetrim などのパラメータを指定することができ、よりカスタマイズすることができます。

この関数から返される最終的な結果は文字列です。

import numpy as np

no1 = float(5800000.00000)
no2 = float(0.0000058)

print(np.format_float_scientific(no1, precision=1, exp_digits=3))
print(np.format_float_scientific(no2, precision=2, exp_digits=3))

出力:

5.8e+006
5.8e-006
著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

関連記事 - Python String