【関連記事】【Pythonのライブラリ管理ツール】pipインストールを徹底解説!Windowsでも簡単?
【関連記事】PythonのコードをEXE化するには? PyInstallerやその他ツールの特徴や使い方
【関連記事】Pythonで自動化できること7選!面倒な作業を効率化してより便利に
Python関連記事はこちらから↓
Pythonのライブラリとは?
まず始めに、ここではPythonのライブラリとはどういったものなのか解説します。ライブラリの使い方やフレームワークとの違いについてもまとめたので、ライブラリに関する基礎知識を押さえるところから始めましょう。
Pythonの活用が進んでいることから内容を増強し、「さらに活用できるPythonライブラリ3選」を盛り込んで解説していきます。
そもそもライブラリとは?
ライブラリとは、複数のプログラムをまとめ、再利用しやすくしたものです。プログラミングでは、同じコードを何度も書くのは非効率とされています。そこで、多く使う機能はライブラリにまとめ、何度でも使えるようにするのです。
ライブラリを使うことで自分でソースコードを書く必要がなくなり、開発作業が楽になります。また、機械学習などの複雑な開発もライブラリを使えば簡単に行えます。
ライブラリの使い方
ライブラリを使う場合、ソースコードの上に「import ライブラリ名」と記述する必要があります。これでインストールされているライブラリを呼び出すことが可能です。
また、ライブラリの中の特定オブジェクトだけを使いたい場合は、「from モジュール名 import オブジェクト名」と記述します。Pythonでライブラリを利用する場合、import文の記載を忘れないようにしましょう。
Pythonの標準ライブラリの一覧については、以下で確認することができます。
【参考】:Python 標準ライブラリ
ライブラリとフレームワークの違い
ライブラリとフレームワークはよく混同されがちですが、厳密には異なるものです。どちらも、複数のプログラムをひとまとめにした点は共通しています。しかし、フレームワークはより大きなまとまりになったものであり、プログラム全体の流れを限定させるものです。
例えるなら、フレームワークは「枠組み」のようなものです。まずどのフレームワークを使うかを決め、それからプログラミングを行います。Pythonのフレームワークは、「Django」「Flask」「web2Py」などが挙げられます。
一方ライブラリは、プログラミングに必要なものを一部「引用」して使います。ライブラリは、プログラム全体の流れを決めるものではありません。
外部ライブラリの探し方
Pythonの外部ライブラリとは、Pythonに標準装備されていない、外部からのインストールが必要なライブラリのことです。このPythonの外部ライブラリの一覧は、PYPI(Python Package Index)というサイトで探すことができます。ちなみに、外部ライブラリのインストールにはPythonの管理ツールであるpipを利用します。
【参考】:PYPI
『マイナビIT AGENT』で転職相談を受けてみる
pip
pipは、パッケージに関する様々な操作を行える標準ライブラリです。Pythonでパッケージを扱いたいなら、管理ツールであるpipの使用頻度は高くなります。例えば、パッケージをインストールしたり、アップデートしたりする際に、pipライブラリを使うことになります。
【参考】:pip: Python環境構築ガイド
必ず使うPythonライブラリ6選
それでは、Pythonのライブラリについて解説します。まずは、最低限覚えておきたいライブラリを6つ紹介します。これらのライブラリは初学者であっても、使う頻度の高いものばかりです。これらの使い方は押さえておいた方が良いでしょう。
random
randomは、ランダムに数値を生成できるライブラリです。何らかの数値を出したい場合は、randomを利用します。例えば、おみくじやじゃんけんアプリを作りたい場合は、randomを使って乱数を生成すると良いでしょう。randomは使う頻度が多いライブラリの1つです。
【参考】:random --- 擬似乱数を生成する
datetime
datetimeは、日付や時間を扱うためのライブラリで、今日は何日かや数年前の日時を取得することが可能です。日付情報を扱いたい場合、datetimeライブラリを利用することになるでしょう。ただし、取得した日付のデータを整形したい場合は、他の種類のライブラリが必要です。
【参考】:datetime --- 基本的な日付型および時間型
os
osは、OSに関連した処理を行うためのライブラリです。OSに関連した処理とは、例えばファイルを削除したりディレクトリを作成したり、といった内容のことです。Pythonでファイル操作を行いたい場合は、osライブラリを使うことになるでしょう。こちらも利用頻度が高いので、覚えておきたいところです。
【参考】:os --- 雑多なオペレーティングシステムインターフェース
re
reは、正規表現を使うためのライブラリです。正規表現を使うことで、特定のパターンにマッチする数値かどうかを判定することができます。例えば、フォームに入力されたメールアドレスや電話番号が、書式に沿っているかなどを判定することが可能です。
正規表現はPythonの基礎文法の1つであり、reライブラリは使う頻度が高いでしょう。ただし、import文を書き忘れることが多いライブラリなので、注意が必要です。
【参考】:re --- 正規表現操作
math
mathは、数学的処理を行うためのライブラリです。四則演算だけならライブラリなしで可能ですが、複雑な計算処理などを行いたい場合は、mathに頼ることが多いです。例えば、絶対値や円周率を取得したい場合は、mathライブラリを使うと楽です。他にも、指数関数・対数関数・三角関数といった、高校・大学数学で用いられる関数が使えます。
Pythonは機械学習の分野で多く使われる言語でもあり、その影響でmathライブラリの利用頻度も高いです。
【参考】:math --- 数学関数
sys
sysは、実行環境に関する処理を行うライブラリです。Pythonではインタプリタを使って、ソースコードを機械語に翻訳しているのですが、そのインタプリタに関する関数がまとめられています。例えば、プログラムを強制終了させたい場合は、sysライブラリのexit関数が便利です。sysライブラリも、Pythonの基本的なライブラリの1つです。
【参考】:sys --- システムパラメータと関数
さらに活用できるPythonライブラリ3選
Pythonの用途は日々拡大しています。本解説では、おすすめライブラリーをさらに追加ピックアップしお伝えします。多様なニーズに活用できるように、ライブラリの機能を分かりやすくご紹介していきます。
json
jsonライブラリは、JSON(JavaScript Object Notation)フォーマットを処理します。JSONは軽量であり、データ交換で活用されています。JavaScript のオブジェクトリテラルにより、アプリケーション間でのデータ交換に活用できるでしょう。
【参考】:Python Docs: json --- JSON エンコーダおよびデコーダ
calendar
calendarは、月間や年間のカレンダーを簡単に取得できるライブラリです。出力形式もHTMLやリストなどで簡単に取得できるため、アプリで予定を追加可能するのに役立てられるでしょう。
【参考】:Python Docs: calendar --- 一般的なカレンダーに関する関数群
dateutil
dateutilは、先に紹介した標準ライブラリのdatetimeを拡張した外部ライブラリです。日付処理を進めていくと、datetimeだけでは対応できない場面に遭遇します。例えば来月や来年の日付や、今月末の金曜日などの処理は、dateutilを用いることで難なく実装することができます。
【参考】:dateutil - powerful extensions to datetime
便利なPythonライブラリ4選
続いて、覚えておくと便利なPythonライブラリを4つ紹介します。これらのライブラリは利用頻度は高くないものの、いざというときに頼りになるものばかりです。ライブラリなしでは実装が難しいことが多いので、覚えておくと良いでしょう。
matplotlib
matplotlibは、描画ライブラリです。棒グラフや折れ線グラフなどを描画したい場合に使います。Pythonで画像解析や数値解析を行う場合に、用いられることが多いライブラリです。
【参考】:Matplotlib
Pillow
Pillowは、画像処理を行うためのライブラリです。例えば、画像の拡大や画像の読み込みをすることができます。画像処理の基本的なことを網羅しているライブラリです。もっと高度なことがしたい場合は、他の画像処理のライブラリが必要になる場合もありますが、ひとまずPillowの使い方を覚えると良いでしょう。
【参考】:Pillow
requests
requestsは、Webサイトのデータを取得するためのライブラリです。Webサイトの文章や画像を取得し、ローカル環境で扱うことができます。Pythonでスクレイピングを行う場合、なくてはならないライブラリです。
【参考】:Requests: HTTP for Humans
beautifulsoup
beautifulsoupは、HTMLファイルを解析するためのライブラリです。HTMLファイルから、特定タグの部分を抜き出すなどができます。requestsと合わせて、スクレイピングを行う場合に利用されるライブラリです。
【参考】:Beautiful Soup 4.12.0 documentation
機械学習で使うPythonライブラリ3選
続いて、機械学習で使われるPythonライブラリを3つ紹介します。Pythonは機械学習に向いている言語ということはご存知の方も多いでしょう。機械学習用のライブラリは数多くありますが、Pythonで機械学習や統計解析を行いたい場合は、本記事で紹介する3つのライブラリをまず覚えましょう。
sklearn
sklearnは機械学習専門のライブラリで、機械学習に必要なあらゆる機能がsklearnにまとめられています。教師あり学習・教師なし学習・モデル選択・モデル評価・データセットの読み込み、などの機能が豊富です。
Pythonで機械学習を行う場合、sklearnライブラリはなくてはならない存在です。機械学習をこれから勉強する方は、sklearnの使い方を押さえるところから始めるのがおすすめです。
【参考】:Scikit-learn
pandas
pandasは、データ解析用のライブラリです。膨大なデータを読み込み統計量を表示したり、データをグラフ化したりすることができます。pandasも機械学習を行う上で、多く使われるライブラリです。
【参考】:Pandas
Numpy
Numpyは、科学技術計算で使われるライブラリです。機械学習で必要な複雑な計算処理も、Numpyを使えば簡単に行えます。
また、処理速度が早いのも、Numpyを使うメリットです。Pythonは処理速度が遅い言語のため、「機械学習には向いていないのでは?」と思う方もいるかもしれません。しかし、Numpyを使えば複雑な計算も素早く行えるため、Python自体の処理速度は関係なくなります。Numpyも機械学習を行う上では必須といえるライブラリでしょう。
【参考】:Numpy
Pythonのライブラリを理解するためのおすすめの本
ここでは、当記事がおすすめするPythonのライブラリを理解するための本を3冊ご紹介します。
逆引きPython標準ライブラリ 目的別の基本レシピ180+!
本書籍は、Pythonの標準ライブラリをどう活用すればいいのかが丁寧に解説されています。文字列/データ操作・テキスト処理・ファイル操作・数値演算・ネットワークアクセス・GUIなどについて記載されており、本書を通して初心者から中級者までスキルアップが期待できます。Pythonのライブラリについて知るためのお手本になるような、人気の本です。
▪著者:田中 賢一郎/大津 真 ▪ページ数:360ページ ▪出版社:インプレス ▪発売日:2018/2/19
【参考】:逆引きPython標準ライブラリ 目的別の基本レシピ180+!
現場ですぐに使える! Pythonプログラミング逆引き大全400の極意
初心者でも分かりやすく学べる書籍です。Pythonの基本知識はもちろん、ファイル操作・Webスクレイピング・テキストマイニング・データマイニング・GUIアプリの作成・ディープラーニング・データの視覚化などが解説されています。
また、外部ライブラリをどう活用するのかも詳しく記載しているため、ライブラリやPython自体をきちんと勉強したい方におすすめの本です。
▪著者:金城 俊哉 ▪ページ数:828ページ ▪出版社:秀和システム ▪発売日:2021/01/16
【参考】:現場ですぐに使える! Pythonプログラミング逆引き大全400の極意
Pythonライブラリの使い方〜手軽に応用プログラミング〜
本書籍は、数あるPythonライブラリの中でも比較的に簡単に活用できるものを選び、サンプルプログラムを参考に解説しています。NumPy・OpenCV・scikit-learnといった全部で12種類のライブラリを分かりやすくまとめ、Pythonの基本知識についても解説されているのでより詳しく理解したい方におすすめです。
▪著者:松田 晃一 ▪ページ数:424ページ ▪出版社:カットシステム ▪発売日:2019/08/10
【参考】:Pythonライブラリの使い方〜手軽に応用プログラミング〜
Pythonのライブラリを使いこなして一段上の開発を
Pythonには豊富なライブラリがあることがお分かりいただけたでしょうか。Pythonはライブラリを使うことで開発が楽に行えるため、初心者向きといわれています。Pythonの基礎文法をマスターした方は、ライブラリについて学習すると一段上の開発が可能になります。本記事が、Pythonのライブラリについて知りたい方にとって有意義なものとなれば幸いです。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから