Tips

【Python】浮動小数点とeとinf, nanについて

  • このエントリーをはてなブックマークに追加

今回はPythonの小数点の扱いについてです。

Pythonにおいては機械学習など数値計算は欠かせない要素ですが、その中でも浮動小数点数は特に重要です。

本記事ではPythonでの浮動小数点数の扱いに焦点を当て、その中でも「e」の表記、そして特殊な状態としての「inf」(無限大)と「nan」(非数)について深堀りしていきます。

これらの概念を理解することはPythonで登場する数学的な計算からデータサイエンスまで、さまざまなPythonプログラミングの側面で役立ちます。

また動画もあるので必要に応じて活用してください。

https://youtu.be/nOrTbU7psqs

Pythonでは小数点で計算したものは自動的に小数点になる

小数点を使った計算であればそのまま小数点の桁数を自分で決めて計算するだけでOKです。

test1 = 1
test2 = 1.1
print(test1, test2, sep=",")

また整数を小数点に変換して使用したいときは、「.0」を付け足した状態で計算させればOKです。

例えばJavaScriptだと「1.0 + 2.0」のような書き方で計算しても「3」と整数になって返ってきますので、専用のメソッドを使って整数→小数点に変換してあげる必要がありました。

Pythonは小数点で入れた計算は仮に結果が整数であったとしても「3.0」のような桁数を守って返してくれます。

test1 = 1
test2 = 2
print(test1 + test2)
test1 = 1.0
test2 = 2.0
print(test1 + test2)

また小数点の表現を電卓のように「e」を使った表示にすることも可能です。

マイナスだと0に近づき、プラスだと0から離れるイメージです。

test1 = 1e-1
test2 = 1e+1
print(test1,test2,sep=",")

数字でないという表現をプログラミングでは「NaN」と呼びますが、PythonでNaNにするにはfloat(“nan”)とする必要があります。

小数点⇔整数の変換

実務では小数点⇔整数の変換がよくあります。

計算する内容によって都合の良い形式があり、Pythonではメソッドによって簡単にそれぞれ変換することが可能です。

まずは整数を小数点に変換する方法ですがfloatというメソッドがあり引数に入れた整数をキリの良い数字であっても少数に変換できます。

a = 100
a = float(a) # 100.0と出力される

変数aは少数になったので反対に整数に変換するにはintというメソッドを使用します。

a = 100.0
a = int(a) # 100と出力される

ちなみに小数に変換するときにfloatだと小数点第1位になりますが、小数点の位置を自由に決めたい場合にはformatメソッドを使います。

第一引数に変換したいデータ、第二引数に小数点の数を「.」「f」の間に数字を入れて表現します。

a = 100
a = format(a, ".2f") # 100.00と出力される

また小数、整数ともに丸め込み(四捨五入)したいときにはroundメソッドを使用します。

引数なしだと整数になるように変換しますが、第一引数に変換したいデータを入れて第二引数に数字を入れると、第二引数の小数点の位置で四捨五入するようになります。

b = 100.5345
b = round() # 100と出力される
c = 100.5345
c = round(c, 2) # 100.53と出力される

小数と整数の扱いは意外と登場頻度が多い作業になりますので初心者のうちから練習しておきましょう。

こちらの本を参考にして作成しました。

良ければこちらからどうぞ。

  • このエントリーをはてなブックマークに追加