NumPy で数学系の関数を使ってみよう

Last update: 2016-05-06

このページでは、三角関数や指数関数、対数関数など、基本的な数学関連の関数の使い方を解説します。

三角関数

正弦関数 (sin(x), サイン) 、余弦関数 (cos(x), コサイン)、正接関数 (tan(x), タンジェント) を求める関数として、それぞれ、np.sin(x)np.cos(x) があります。なお、x はラジアンで指定する必要があるため、度はラジアンに変換する必要があります。

サンプルコード

実行結果

Matplotlib を利用して、サインカーブを出力することもできます。

サンプルコード

sign_curb


逆三角関数

逆正弦関数 (インバース・サイン, inverse sin, sin^-1, arcsin)、逆余弦関数 (インバース・コサイン, inverse cosine, cos^-1, arccos)、逆正接関数 (インバース・タンジェント, inverse tangent, cos^-1, arccos) を計算する関数として、np.arcsin(x), np.arccos(x), np.arctan(x) があります。

サンプルコード

実行結果


ラジアン ⇔ 度 の変換

NumPy では、np.radians(x), np.deg2rad(x), np.rad2deg(x) 関数で、弧度法(rad)と度数法 (°) を変換します。なお、np.radians(x), np.deg2rad(x) の 2 つの関数は同じ結果を返します。

サンプルコード

実行結果


指数関数、対数関数

NumPy には、指数関数として、e(x) を計算する np.exp() があります。

サンプルコード

実行結果

NumPy には、対数関数として以下が定義されています。

  • e が底 (Log_e(x)) の np.log(x)
  • 2 が底(Log_2(x))の np.log2(x)
  • 10 が底(Log_10(x))の np.log10(x)

なお、定数 e は、np.e として定義されています。

サンプルコード

実行結果


剰余

NumPy で剰余 (割り算の余り) を求めるには、np.mod()があります。

サンプルコード

実行結果

なお、配列を用いない場合は、NumPy を利用せず、Python の関数のみで実現可能です。
サンプルコード・実行結果


四捨五入、切捨て、切り上げ

小数を整数に変換する方法としては、いくつかの方法があります。

  • 四捨五入 np.round()
  • 切り捨て np.trunc()
  • 切り捨て np.floor()
  • 切り上げ np.ceil()
  • ゼロに近いほうに丸める np.fix()

サンプルコード

実行結果

参考までに、配列を用いない場合は、NumPy ではなく、 Python のみで実行可能です。

サンプルコード

実行結果


最大値、最小値

NumPy では、np.maximum , np.minimum 関数を利用して同じ長さの配列から、各要素の最大値、最小値を抽出して新たな配列を作成します。
また、同様の働きをする関数で、np.fmax , np.fmin 関数は、配列の要素に NaN (Not-a-Number) が含まれていた場合に、NaN を無視して数値を出力します。

サンプルコード

実行結果


平方根(ルート)、べき乗 (二乗, 三乗, n乗)

方根(√x)を求める関数として、np.sqrt(x) があります。

サンプルコード

実行結果


複素数

NumPy では複素数の計算にも対応しています。
複素数に関する関数として、複素数の実数部を返す np.real() 、虚数部を返す np.imag() 、共役複素数 (複素共役, 虚数部の符号を逆にした複素数) を返す np.conj() を紹介します。

サンプルコード

実行結果


絶対値

NumPy で絶対値 (負の数は正の数として出力、正の数は正の数として出力) を求めるには、np.absolute()があります。

サンプルコード

実行結果


出典・引用: Mathematical functions — NumPy v1.10 Manual

See also