モジュールの概念
コードを記述して、他のプログラムから再利用できるようにしたファイルのことをモジュールと呼びます。
モジュールのインポート
Pythonだけでは実は貧弱だったりします。
Pythonそれだけではシンプルという禅のモットーから、できることが少ないです。例えば、理系の皆さんが大好きなsin, cos tan関数の値を計算したくなったとしましょう。
>>> sin(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'sin' is not defined
上述のように、「sinなんてものはない」と怒られます。Pythonという名の工場は、実は取り扱い製品に限りがあるのです。
import
そこでPythonという我々の工場に、mathと呼ばれる機械を調達してくれば、sin, cos, tanを取り扱うことも可能になります。その調達作業がimportです。ではそれを行ってみましょう。
>>> import math
>>> math.sin(1)
0.8414709848078965
上の例ではmathというライブラリをimportし、その中のsin関数を使って1ラジアンのときのsinの値を計算しています。
「importされたmathの中のsinを使う」という意味で、math.sin
と記述されることに注意しましょう。cosの計算の場合も同様です。
>>> math.cos(1)
0.5403023058681398
モジュールの一部のimport
mathと呼ばれる機械が提供してくれる機能はとても魅力的です。しかし、その機械の機能全てを使うわけではないので、その一部だけを持ってきたいとあるとき思いました。その場合にはfromを使って、以下のように記述します。
>>> from math import sin
>>> sin(1)
0.8414709848078965
上の例では、mathの中でもsinしか用いない場合を想定したものです。今度はmathの中のsinを直接importしている、という意味合いから、math.sinとは記述せずsinだけで計算を行うことができます。
この場合、sinしかimportしていないため、cosを使うことはできません。
>>> cos(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'cos' is not defined
モジュールに略称をつける
Python工場に導入したmath機械ですが、多用しているうちに、いちいち正式名称で呼ぶのが億劫になってきました。そんな時はasを使って、以下のように記述します。
>>> import math as mt
>>> mt.sin(1)
0.8414709848078965
as以降は自分の好きな名称をつけることができます。numpyをnp、pandasをpdと略して使えているのは、この文法のためだったのです。
モジュールのインストール
世の中には便利なモジュールが数多く存在します。NumPy(数値計算ライブラリ)やmatplotlib(グラフ描画ライブラリ)はその例です。当然ですが、これらを使うためには自分のパソコンにインストールする必要があります。
PyPIとpip install
pipというパッケージ管理ツールを用いることで、PyPI(Python Package Index: Pythonパッケージを登録・管理するためのサービス: https://pypi.org )からインストールすることができます。以下はPyPIのトップ画面です。
マゼンタ枠のSearch projectsにnumpyとタイプすると、以下のような画面になります。
上枠がpip installを用いたインストール方法、下枠がnumpyの詳細情報が書かれたウェブサイトへのリンク先になっています。
これで自分が必要なモジュールを自分のパソコンにインストールし、自分のPython工場にimportすることで、PyPIで公開されている便利なモジュールを思いのままに使うことができるようになります。