Python import mathの完全ガイド:数学関数の使い方を徹底解説
Pythonで数学的な計算を行う際に欠かせないのがmathモジュールです。import mathにより、三角関数、対数、べき乗、定数など、高度な数学関数を簡単に利用できます。
本記事では、Python初心者から中級者まで理解できるよう、mathモジュールの基本的なインポート方法から実践的な使用例まで詳しく解説します。
mathモジュールとは
mathモジュールは、Pythonの標準ライブラリに含まれる数学関数を提供するモジュールです。追加インストール不要で、様々な数学計算を効率的に実行できます。
基本的なインポート方法
import math
print(math.pi) # 3.141592653589793
mathモジュールのインポート方法
1. 標準的なインポート
import math
result = math.sqrt(16) # 4.0
2. 特定の関数のみインポート
from math import sqrt, pi
result = sqrt(16) # 4.0
3. 全ての関数をインポート
from math import *
result = sqrt(16) # 4.0(非推奨)
4. エイリアスを使ったインポート
import math as m
result = m.sqrt(16) # 4.0
主要な数学定数
mathモジュールには重要な数学定数が定義されています。
import math
print(f"円周率: {math.pi}") # 3.141592653589793
print(f"自然対数: {math.e}") # 2.718281828459045
print(f"無限大: {math.inf}") # inf
基本的な数学関数
べき乗と平方根
import math
print(math.pow(2, 3)) # 8.0
print(math.sqrt(25)) # 5.0
print(math.cbrt(27)) # 3.0(立方根)
絶対値と符号
import math
print(math.fabs(-5.5)) # 5.5
print(math.copysign(3, -1)) # -3.0
切り上げ・切り下げ
import math
print(math.ceil(4.2)) # 5
print(math.floor(4.8)) # 4
print(math.trunc(4.9)) # 4
三角関数
基本的な三角関数
import math
angle = math.pi / 4 # 45度
print(f"sin: {math.sin(angle):.3f}") # 0.707
print(f"cos: {math.cos(angle):.3f}") # 0.707
print(f"tan: {math.tan(angle):.3f}") # 1.000
逆三角関数
import math
print(math.asin(0.5)) # 0.5236(約30度)
print(math.acos(0.5)) # 1.0472(約60度)
print(math.atan(1)) # 0.7854(約45度)
度数とラジアンの変換
import math
degrees = 90
radians = math.radians(degrees) # 1.5708
back_to_degrees = math.degrees(radians) # 90.0
対数関数
自然対数と常用対数
import math
print(math.log(math.e)) # 1.0(自然対数)
print(math.log10(100)) # 2.0(常用対数)
print(math.log(8, 2)) # 3.0(底を指定)
より安全な対数計算
import math
print(math.log1p(0.1)) # log(1+x)の精密計算
print(math.log2(8)) # 3.0(底2の対数)
実践的な使用例
距離の計算
import math
def distance(x1, y1, x2, y2):
return math.sqrt((x2-x1)**2 + (y2-y1)**2)
print(distance(0, 0, 3, 4)) # 5.0
円の面積と周長
import math
radius = 5
area = math.pi * radius ** 2
circumference = 2 * math.pi * radius
print(f"面積: {area:.2f}, 周長: {circumference:.2f}")
複利計算
import math
principal = 1000000 # 元本
rate = 0.05 # 年利5%
years = 10
amount = principal * math.exp(rate * years)
print(f"10年後: {amount:,.0f}円")
特殊関数
ガンマ関数と階乗
import math
print(math.gamma(5)) # 24.0(4!と同じ)
print(math.factorial(4)) # 24
誤差関数
import math
print(math.erf(1)) # 0.8427(誤差関数)
print(math.erfc(1)) # 0.1573(相補誤差関数)
数値チェック関数
特殊値の判定
import math
print(math.isnan(float('nan'))) # True
print(math.isinf(math.inf)) # True
print(math.isfinite(100)) # True
数値の性質チェック
import math
print(math.isclose(0.1 + 0.2, 0.3)) # True(浮動小数点誤差対応)
print(math.remainder(7, 3)) # 1.0
パフォーマンスの考慮
効率的な使用方法
# 良い例:必要な関数のみインポート
from math import sqrt, pi
result = sqrt(16) + pi
# 避けるべき例:毎回math.を記述
import math
result = math.sqrt(16) + math.pi
ベクトル化が必要な場合
# 大量データにはnumpyを推奨
import math
numbers = [1, 4, 9, 16]
sqrt_numbers = [math.sqrt(x) for x in numbers]
よくあるエラーと対処法
ValueError への対応
import math
try:
result = math.sqrt(-1) # エラーが発生
except ValueError:
print("負の数の平方根は計算できません")
OverflowError への対応
import math
try:
result = math.exp(1000) # オーバーフロー
except OverflowError:
print("計算結果が大きすぎます")
他のライブラリとの使い分け
NumPyとの比較
import math
import numpy as np
# math: 単一値の計算に最適
single_value = math.sqrt(16)
# numpy: 配列計算に最適
array_values = np.sqrt([1, 4, 9, 16])
cmathモジュール(複素数)
import cmath
result = cmath.sqrt(-1) # 1j(虚数単位)
まとめ
import mathにより、Pythonで高度な数学計算を簡単に実行できます。基本的な算術演算から三角関数、対数、特殊関数まで、幅広い数学関数が提供されています。
効率的に使用するためには、必要な関数のみをインポートし、大量データ処理にはNumPyとの使い分けを考慮することが重要です。
本記事で紹介した関数を活用して、データ分析、科学計算、エンジニアリング計算など、様々な分野でmathモジュールを効果的に利用してください。
■プロンプトだけでオリジナルアプリを開発・公開してみた!!
■AI時代の第一歩!「AI駆動開発コース」はじめました!
テックジム東京本校で先行開始。
■テックジム東京本校
「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。
<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。
<月1開催>放送作家による映像ディレクター養成講座
<オンライン無料>ゼロから始めるPython爆速講座


