ライブラリ: cmath

Pythonの「cmath」というライブラリについてご紹介します。

import cmath

「cmath」は、実数だけでなく「虚数」も含んだ、いわゆる「複素数」を扱うためのライブラリです。

Pythonのデータ型のところでも挙げましたが、Pythonには複素数を扱える数値型が用意されています。たとえば、実数部が3、虚数部が4の数値は虚数単位 j を使って次のように表すことができます。

x = 3 + 4j

虚数同士の演算も実数と同じように行えます。

x + x  # 6 + 8j
x * x  # -7 + 24j

実数部、虚数部を取り出すには x.real と x.imag を使います。

x.real  # 3.0
x.imag  # 4.0

cmathは、この複素数型の数値に対して使える基本的な関数を用意しています。以下、使う頻度が比較的高いかなと思える関数をピックアップしてご紹介します。

cmath.polar(x)  # (5.0, 0.927...)
cmath.phase(x)  # 0.927...

複素数といえば極座標、かと思うのですが、polar()とphase()は、xy座標から極座標へと座標変換を行ってくれる関数です。polar(x)は複素数xに対して、(半径r, 位相θ)というペアを返します。一方のpolar(x)は、位相のみを返します。

cmath.rect(5.1, 0.9273)  # (3.0..., 3.99...)

rect()は、polar()やphase()とは逆に、極座標からxy座標に変換する関数です。与えられた(r, θ)のペアに対して、(x, y)のペアを返します。

cmath.exp(x)

exp(x)は、複素数の範囲で指数e**xを計算する関数です。mathライブラリのexp()の場合は実数の範囲内でのみ計算を行いましたが、cmathのexp()は虚数も含めた範囲で計算を行います。

・・・以上です。

インストール 「cmath」は標準ライブラリに含まれているので、Pythonと別途インストールする必要はありません。

参考