Categories: Python

【Python】よく使う数学関数

この記事では、Python でよく使われる数学関数を紹介します。

Python の数値型については以下の記事を参照してください。

【Python】数値型の種類と使い方この記事では、Python で数値を扱うデータ型の種類と演算方法を解説します。Python には、整数を扱うための int型、浮動小数点数を扱うための float型、 複素数を扱うための complex型 などが用意されています。それでは、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)

xy引数 を指定することで切り捨て商と剰余をタプルとして返します。

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
【Python】小数の切り上げ・切り捨て・四捨五入Python で小数点を切り上げ、切り捨て、四捨五入する方法を解説します。値が正確じゃなくていいなら round関数 を使い、正確に取得したい場合は Decimalクラス を使うという感じでいいと思います。...

mathモジュール

mathモジュールは、C標準で定義された数学関数を使うことができます。複素数を扱う場合は、cmathモジュール を使いましょう。

import math

階乗

階乗を取得するには factorial()関数 を使います。

math.factorial(x)

x引数 の階乗を整数で返します。 x引数 が整数でない、または 負の数の場合は ValueError が発生します。

Python 3.9 では、整数値を持つ float型 を指定することは非推奨になった
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 でよく使われる数学関数を紹介しました。

計算は関数が勝手にやってくれるので計算結果が何に使えるかを覚えておきましょう!

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ

ゆうまる

独学でプログラミングを勉強しているおじさん。いろんな言語を勉強したが浅く広くなためあまり仕事につながらない。また忘れっぽいため自分のブログを備忘録としても使っている。産まれてこのかたずっとネコを飼ってる生粋のネコ派。最近お腹が出てきて筋トレに奮闘中!

Recent Posts

【Dart】コンストラクタのデフォルト引数について

Dartのコンストラクタのデフォルト引数…

2週間 ago

【Unity】有料アセットを無料で手に入れる方法

この記事では、Unityの有料アセットを…

4か月 ago

【Python】任意の秒数だけ処理を一時停止する方法【sleep()関数】

この記事では、Pythonで任意の秒数だ…

1年 ago

【Python】Wordの文書の新規作成と読み書き

この記事では、Pythonを使ってWor…

1年 ago

【Python】メタクラスって結局なんなの?

この記事では、Pythonのメタクラスに…

1年 ago