標準モジュールのひとつである math モジュールをインポートすれば,数学関数を利用できます.なお,インポートは通常はプログラムの先頭で一度だけ実行します.
まだモジュールをインポートしていないので,エラーになるはずです.
平方根1
math.sqrt(9)
------------------------------------------------------------ NameError Traceback (most recent call last) <ipython-input-26-ff819a2ef42d> in <module>() ----> 1 math.sqrt(9) NameError: name 'math' is not defined
プログラムの先頭で math モジュールインポートします.
インポート
import math
(何も表示されない)
今度は平方根が計算されました.このとき,モジュール名.関数名
や モジュール名.定数名
という表記で呼び出すことに注意しよう.
平方根2
math.sqrt(9)
3.0
mathモジュールには様々な関数や定数が定義されています.
円周率やネイピア数(自然対数の底)の定数は次の通りです.
円周率
math.pi
3.141592653589793
ネイピア数
math.e
2.718281828459045
対数,指数,べき乗は次の通り.なお,べき乗は実数乗も可能です.
対数関数:2 の 10乗 は 1024
math.log(1024, 2)
10.0
指数関数
math.exp(1)
2.718281828459045
3 の 2.5 乗
math.pow(3, 2.5)
15.588457268119896
三角関数もあります.
三角関数
math.sin(0)
0.0
円周率の近似値を与えると,次のような結果になります.
三角関数
math.sin(3.1415/2)
0.999999998926914
円周率の定数 math.pi
を与えると次のような結果になります.
三角関数
math.sin(math.pi/2)
1.0
切り上げて整数を返す ceil
関数や,切り捨てて整数を返す floor
関数もあります.いずれも負の値を与えた時にどのような結果が得られるか注意してください.
切り上げ
math.ceil(3.14)
4
切り上げ
math.ceil(-3.14)
-3
切り捨て
math.floor(3.14)
3
切り捨て
math.floor(-3.14)
-4
最大公約数 (greatest common divisor) を求める関数 math.gcd()
もあります.なお,素因数分解すると \(576 = 2^6 \times 3^2\) と \(704 = 2^6 \times 11^1\) であることから,576 と 704 の最大公約数は \(2^6 = 64\) です.
math.gcd(576, 704)
64
最小公倍数 (least common multiple) の関数 math.lcm()
は Python 3.9 で使えるようになりました.なお, \(576 = 2^6 \times 3^2\) と \(704 = 2^6 \times 11^1\) の最小公倍数は \(2^6 \times 3^2 \times 11^1 = 6336\) です.
math.lcm(576, 704)
6336
なお,Jupyter Lab や Jupyter Notebook ではシェルコマンドを使って Python のバージョンを調べることができます.
!python --version
Python 3.11.8
たとえば math モジュールの中にある gcd 関数しか使用しないのであれば,from
を使って次のようにインポートすることも可能です.この場合は,モジュール名.
を付ける必要がなくなります.
from math import gcd
gcd(576, 704)
64
また,ここで使っているように,from モジュール名 import *
と記述すれば,すべての関数をインポートできます.(ただし,この読み込みの方法は,読み込んだモジュール内で使われている名前と自身のプログラム内で使っている名前が衝突して思わぬバグになる可能性があるので使用には注意が必要(非推奨)です.)
モジュール名が長いような場合には,as
を使って略称を定義して,略称で関数を呼び出すことができます.例えば,numpy モジュールを省略せずに使うと次のようになります.
import numpy
print(numpy.array([1, 2, 3, 4]))
[1 2 3 4]
しかしながら,as
を使うと numpy
を np
という略称で使えます.多くの場合,NumPy には np
,Pandas には pd
,TensorFlow には tf
の略称が用いられます.
import numpy as np
print(np.array([1, 2, 3, 4]))
[1 2 3 4]