【関連記事】【Pythonのライブラリ管理ツール】pipインストールを徹底解説!Windowsでも簡単?
Pythonのモジュールとは
Pythonとは、機械学習など最先端の分野でも使われている人気の高いプログラミング言語です。Pythonには、既存のコードを流用して開発効率を高める機能が備わっている「モジュール」があります。
Pythonは他のプログラミング言語と比べて様々な分野に利用できる豊富なモジュールと、それらをまとめたパッケージやライブラリが存在するため、他の言語と比べても高度な開発をよりスピーディーに行いやすい点が魅力です。
Pythonのモジュールを活用するには
モジュールはimport文を使って簡単に呼び出すことができますが、効果的にモジュールを利用するためには、どのようなモジュールが存在するのか、それを使って何ができるのかをある程度理解しておく必要があります。
ただし、Pythonのモジュール数はあまりにも膨大であり、それらすべてを1つずつ理解しようとするのは大変です。
ここでは、標準モジュール・外部モジュールからそれぞれ特に利用頻度の高い便利なモジュールを厳選して、一覧表示で紹介します。
Pythonの便利な標準モジュール一覧
Pythonの標準モジュールは、Pythonにプリインストールされており、インストールなどの特別な作業なしに利用できます。
標準モジュールにはどのような用途にも利用できる基本的で汎用的な機能を備えているものが多いため、Pythonを学び始めた段階でも、専門的で高度なプログラムを開発したい場合でも活躍します。
そんな標準モジュールの中でも、利用頻度の高い基本的なモジュールを具体的な使用例を交えて一覧で紹介します。
datetime(日付・時刻)
datetimeは、日付や時間を扱うモジュールです。例えば、現在の時刻を取得するnowメソッドや、日付同士の演算をするtimedeltaクラスなどを利用できます。
import datetime
# 現在の日時を取得する
now = datetime.datetime.now()
print(now)
# 実行結果
2022-12-23 12:39:17.502855
# 現在の日時の一日前の日時を取得する
yesterday = now + datetime.timedelta(days=-1)
print(yesterday)
# 実行結果
2022-12-22 12:39:17.502855
【参考】:datetime --- 基本的な日付型および時間型 — Python 3.12.2 ドキュメント
calendar(カレンダー)
calendarは、その名の通りカレンダーを扱うモジュールです。例えば、年月を指定してカレンダーを表示するmonth関数や、HTML形式で出力するHTMLCalendar関数が利用できます。
import calendar
# カレンダーの年月を定義
year = 2022
month = 12
#カレンダーを出力
print(calendar.month(year,month))
# 実行結果
# カレンダーをHTML形式で出力
htmlcal = calendar.HTMLCalendar(firstweekday=0)
print(htmlcal.formatmonth(year,month, withyear=True))
# 実行結果
<table border="0" cellpadding="0" cellspacing="0" class="month">
~~中略~~
</table>
【参考】:calendar --- 一般的なカレンダーに関する関数群 — Python 3.12.2 ドキュメント
re(正規表現)
reは、正規表現を扱うモジュールです。例えば、正規表現パターンのオブジェクトを作って繰り返し使えるようにするcompiteメソッドや、文字列を検索するmatchメソッド、文字列を置換するsubメソッドなどが利用できます。
import re
# 文字列を準備
msg = "モジュールはとても便利です"
# 正規表現パターンオブジェクトを生成する
ptn = re.compile('モジュール')
# 文字列を検索
hit = ptn.match(msg)
print(hit)
# 実行結果
<re.Match object; span=(0, 2), match='モジュール'>
# 文字列を置換
rep = ptn.sub('ライブラリ',msg)
print(rep)
# 実行結果
ライブラリはとても便利です
【参考】:re --- 正規表現操作 — Python 3.12.2 ドキュメント
math(数学的な計算)
mathは、数学的な計算を扱うモジュールです。指数関数や三角関数、浮動小数点など高度な計算を扱う関数を複数備えています。初歩的なところでは、円周率を取得するpi関数や、小数点以下を削除するtrunc関数などが利用できます。
import math
# 円周率を取得
pi = math.pi
print(pi)
# 実行結果
3.141592653589793
# 小数点以下を削除
trcint = math.trunc(pi)
print(trcint)
# 実行結果
3
【参考】:math --- 数学関数 — Python 3.12.2 ドキュメント
random(乱数生成)
randomは、その名の通り乱数を扱うモジュールです。乱数は実行するたびに値が変わるため、くじ引きのような実行するたびに結果を変えたい処理に利用します。
例えば、範囲内のランダムな整数を取得するrandint関数や、引数に指定された要素をランダムに取得するchoice関数などが利用できます。
import random
# 1~5までの整数をランダムに取得する
kuji =random.randint(1,5)
print(kuji)
# 実行結果
4
# boxの中の値からランダムに1つ取得する。3回繰り返す。
box = [1, 2, 3, 4, 5]
for i in range(3):
print(random.choice(box))
# 実行結果
3
2
3
【参考】:random --- 擬似乱数を生成する — Python 3.12.2 ドキュメント
Pythonには、この他にも様々な標準モジュールが存在します。公式ドキュメントでは網羅的に解説されていますが、専門的な用語や難しい表現も多いため、専門書籍やWeb検索などを併用して理解を深めるとよいでしょう。
【参考】:Python公式
外部モジュールとは
標準モジュールは基本的で汎用的な関数やクラスを提供していますが、より専門的な処理を行いたいというケースは無数に存在します。
Pythonでは、モジュールをユーザ自身で作ることができるため、世界中で様々な分野に特化した専用のモジュールが開発され、公開されています。
こうした標準モジュール以外のモジュールをすべて外部モジュールと呼びます。
外部モジュールの入手方法と利用方法
外部モジュールはPyPIというリポジトリ(ファイルを保管する倉庫のようなもの)にアップロードされており、pipという管理ツールによってダウンロード・インストールすることができます。pipは最新バージョンのPythonであればプリインストールされています。
pipによってインストールされたモジュールは、標準モジュールと同じくimport文を記述することで利用できます。
【参考】:PyPI公式
Pythonの便利な外部モジュール一覧
外部モジュールは個人や団体を問わず誰でも開発して公開できるため、標準モジュール以上に数が豊富であり、質も開発者によって様々です。そのため、全てを知って活用することは困難でしょう。
ここでは、ライブラリやフレームワークなどを含む外部モジュールの手がかりとして代表的なものを厳選し、実用例とともに一覧で紹介します。
Numpy(高度で効率的な数値計算)
Numpyは機械学習やディープラーニング、データ分析など最先端の分野で扱われているライブラリで、コンパイラ言語であるC言語でコーディングされているため、大規模なデータを高速で処理できます。
例えば、Numpy独自の計算や集計機能に対応した関数を使うと、組み込み関数やmath関数などを使うよりも高速に計算ができます。
import Numpy as np
# 配列を作成する
array = np.array([1,2,3])
# 配列すべてに対して2を足す
array + 2
# 実行結果
array([3,4,5])
【参考】:Numpy公式
Matplotlib(グラフ作成)
Matplotlibは、グラフ作成ができるライブラリであり、棒グラフや折れ線グラフ、等高線などあらゆるグラフを生成できます。なお、グラフではX軸やY軸の範囲で配列を扱うため、Numpyと併用することが多いです。
import Numpy as np
import Matplotlib.pyplot as plt
# X軸とY軸を用意
x = np.arrange(-5,6)
y = x**3
# プロットを作成
plt.plot(x,y)
# グラフを表示
plt.show()
【参考】:Matplotlib — Visualization with Python
xlwt / xlrd(Excel操作)
xlwtはExcelファイルを作成したり、書き込みしたりできるライブラリで、xlrdはExcelファイルを読み込んで操作するライブラリです。
例えば、xlwtで新規Excelファイルを作成して特定のセルに値を入力し、xlrdでそのExcelファイルを開いて特定のセルの値を取得できます。
import xlwt
import xlrd
# Excelのワークブックを新規作成する
newbook = xlwt.workbook()
# ワークブックにシートを追加する(最低1つ必要)
newbook.add_sheet(‘sheet_1’)
# A1セルに12/24と入力する。引数は(行,列,値)
sheet_1.write(0,0,`12/24`)
# ワークブックを保存する
newbook.save(‘pymodule.xlsx’)
# ワークブックを開く
openedbook = xlrd.open_workbook(pymodule.xlsx)
# 最初のシートを指定する
selectedsheet = openedbook.sheet_by_index(0)
# 選択したシートのA1セルの値を出力する
print(selectedsheet.cell_value(0,0)
# 実行結果
12/24
【参考】:xlwt · PyPI 【参考】:xlrd · PyPI
Flask(Webアプリケーション、Webサイト作成)
Flaskは、Pythonで小規模なWebアプリケーションやWebサイトを簡単に作ることができるフレームワークです。例えば、「Hello world」と表示されるだけのWebページであれば以下のような短いコードで作成できます。
from flask import Flask
<p><text>hp = Flask(</text><italic>name</italic><text>)</text></p>
@hp.route("/")
def hello():
return "Hello, World!"
Flaskは公式の日本語チュートリアルが公開されているため、まずはそちらで学習するといいでしょう。
【参考】:Flask公式
Selenium(Webブラウザ操作の自動化)
Seleniumは、Webブラウザを操作することができるツールです。例えば、Web上の情報を検索・取得したり、スクリーンショットとして保存したりできます。(別途、操作したいWebブラウザに対応するドライバーソフトのインストールが必要です。)
import seleniumu
# Google chromeのWebドライバーを設定
driver = seleniumu.webdriver.Chrome()
# Google Chromeを開く
driver.get('https://www.google.com/')
# Pythonで検索
search_box = driver.find_element_by_name('q')
search_box.send_keys('Python')
search_box.submit()
#ブラウザを閉じる
driver.quit()
【参考】:Seleniumブラウザー自動化プロジェクト | Selenium
Pythonには、この他にも様々な外部モジュールが存在します。外部モジュールのリポジトリであるPyPIでは、検索バーやトレンド、最新リリースなどから探すこともできます。第三者の書いたコードを読み解いてみることもコーディングの学習には役立つため、積極的にチェックしてみましょう。
【参考】:PyPI公式
モジュールを使いこなすことがPython上達への近道
Pythonでは、標準モジュールや外部モジュールを使えば既存の動作実績のあるコードを簡単に利用することができます。
専門的で高度な内容になるほど、ゼロからの開発には大きな時間がかかりますが、結果的に同じ動作になるなら既に存在する実績のあるコードを利用しない手はありません。
そのためにも、実現したいことに必要なモジュールが既に存在しているかどうかを調べたり、モジュールを自分のプログラムに取り入れたりする方法を知っておくことが重要です。
Pythonは機械学習などの最先端分野で使われていることもあり、コミュニティによる研究や開発が活発でナレッジも多いという利点があります。
モジュールの扱いをマスターして、効率的な開発スキルを身に付けましょう。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから