この記事では、Python でよく使われる数学関数を紹介します。
Python の数値型については以下の記事を参照してください。
組み込み関数
Python の数値型によく使われる組み込み関数を紹介します。
絶対値
abs()
関数 を使うことで絶対値を取得できます。
絶対値 = abs(x)
x
引数 に数値型を指定することで指定した値の絶対値を受け取ることができます。
num = -2.5
abs_num = abs(num)
print(abs_num)
実行結果
2.5
切り捨て商と剰余
divmod()
関数 は、切り捨て商と剰余をまとめて取得できます。
(a // b, a % b) = divmod(a, b)
x
、y
引数 を指定することで切り捨て商と剰余をタプルとして返します。
r = divmod(5, 2)
print(r)
実行結果
(2, 1)
最大値・最小値
max()
関数 は最大値、min()
関数 は最小値を返します。
最大値 = max(値1, 値2, ..., 値N)
最小値 = min([要素1, 要素2, ..., 要素N])
引数に複数の値やリストなどのコンテナオブジェクトを指定することで、その要素の中の最大値・最小値の値を受け取ることができます。
max_value = max(8, 1, 9, 2)
print(f'max: {max_value}')
min_value = min([8, 1, 9, 2])
print(f'min: {min_value}')
実行結果
max: 9
min: 1
べき乗
pow()
関数 を使うことでべき乗を計算できます。
base**exp = pow(base, exp)
base
引数 の exp
引数乗 が返されます。
print(pow(2, 3))
print(pow(2, -2))
実行結果
8
0.25
小数を丸める
round()
関数 を使うことで小数を丸めることができます。
round(number)
number
引数 の小数を距離が近い方に丸めます。0.5のように距離が等しい場合、偶数になるように丸められます。
round(number, ndigits)
ndigits
引数 を指定することで丸める小数の桁数を指定できます。
print('距離が同じ場合')
print(0.5, round(0.5))
print(1.5, round(1.5))
print('桁数の指定')
PI = 3.1415
print(PI, round(PI))
print(PI, round(PI, 1))
print(PI, round(PI, 2))
print(PI, round(PI, 3))
実行結果
距離が同じ場合
0.5 0
1.5 2
桁数の指定
3.1415 3
3.1415 3.1
3.1415 3.14
3.1415 3.142
mathモジュール
math
モジュールは、C
標準で定義された数学関数を使うことができます。複素数を扱う場合は、cmathモジュール を使いましょう。
import math
階乗
階乗を取得するには factorial()
関数 を使います。
math.factorial(x)
x
引数 の階乗を整数で返します。 x
引数 が整数でない、または 負の数の場合は ValueError
が発生します。
import math
print(math.factorial(1))
print(math.factorial(2))
print(math.factorial(3))
print(math.factorial(4))
実行結果
1
2
6
24
指数関数と対数関数
指数関数
math.exp(x)
ネイピア数(2.718281...)の x
乗 を返します。
import math
print(math.exp(1))
print(math.exp(2))
print(math.exp(3))
print(math.exp(4))
実行結果
2.718281828459045
7.38905609893065
20.085536923187668
54.598150033144236
対数関数
math.log(x)
x
引数 のネイピア数を底とする自然対数を返します。
math.log(x, base)
base
引数を指定した場合、base
引数 を底とした x
引数 の対数を返します。
import math
print(math.log(2))
print(math.log(3))
print(math.log(4))
print(math.log(5))
print(math.log(2, 2))
print(math.log(3, 2))
print(math.log(4, 2))
print(math.log(5, 2))
実行結果
0.6931471805599453
1.0986122886681098
1.3862943611198906
1.6094379124341003
1.0
1.5849625007211563
2.0
2.321928094887362
平方根
平方根を取得するには sqrt()
関数 を使います。
math.sqrt(x)
x
引数 の平方根を返します。
import math
print(math.sqrt(1))
print(math.sqrt(2))
print(math.sqrt(3))
print(math.sqrt(4))
実行結果
1.0
1.4142135623730951
1.7320508075688772
2.0
三角関数
三角関数を計算するには次の関数を使用します。
sin(x) | サイン |
---|---|
cos(x) | コサイン |
tan(x) | タンジェント |
x
引数 には ラジアンを指定します。
import math
# 30度をラジアンに変換
r = math.radians(30)
# sin 30°
sin = math.sin(r)
print(sin)
実行結果
0.49999999999999994
三角関数の逆計算をするアーク系三角関数も用意されています。普通の三角関数は 角度から辺の長さの割合を求めるが、アーク系三角関数では辺の長さの割合から角度を求める。
asin(x) | アークサイン |
---|---|
acos(x) | アークコサイン |
atan(x) | アークタンジェント |
x
引数 には 辺の長さの割合を指定する。
import math
# 30度をラジアンに変換
r = math.radians(30)
# sin 30°
sin = math.sin(r)
# 辺の長さから角度を求める
asin = math.asin(sin)
# ラジアンから度に変換
d = math.degrees(asin)
print(d)
実行結果
29.999999999999996
若干誤差が生じる可能性があるので注意。
角度変換
ラジアンを度に変換
ラジアンを度に変換するには degrees()
関数 を使います。
math.degrees(x)
x
引数(ラジアン) を度に変換します。
import math
radian = 3.141592653589793
print(math.degrees(radian))
実行結果
180.0
度をラジアンに変換
度をラジアンに変換するには radians()
関数 を使います。
math.radians(x)
x
引数(度) をラジアンに変換します。
import math
angle = 180.0
print(math.radians(angle))
実行結果
3.141592653589793
まとめ
この記事は、Python でよく使われる数学関数を紹介しました。
計算は関数が勝手にやってくれるので計算結果が何に使えるかを覚えておきましょう!
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ