Python入門者に是非使ってほしい!便利なライブラリ10選

もっと簡単にプログラミングがしたいけど……
どのライブラリを使えば良いんだろう……

Pythonにはいろんなライブラリがあるので、これらを使えば簡単で効率的なプログラミングができるようになります。

こんにちは!侍エンジニアライターのフクロウです。機械学習のインストラクターをやっています。

この記事では、Python初心者(クラスまで勉強したよ!あたりの人)に使ってほしい、便利なライブラリを10個紹介します!

Pythonでは様々な用途のプログラムが作れますが、特に機械学習とWebが強いので、機械学習、Web、その他の3つに分けてPythonのおすすめライブラリを紹介していきます。

なお、本記事を読む前にそもそもPythonとはどんなプログラミング言語なのか、その特徴をおさらいしておきたい人は次の記事を参考にしてください。

→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説

目次

ライブラリってなんだろう

Pythonのライブラリとは、クラスや関数などがまとめられたものです。Pythonで使うことができるライブラリは、主にPyPIにまとめられています。
[https://pypi.org/]

ライブラリを使うことで、一から自分で実装しなくても、簡単に様々なプログラムを使うことができます。例えばWebサイトの構築や、機械学習プログラムの利用などが可能です。

PyPIからのライブラリインストールは簡単です。ターミナル(Windowsだとコマンドプロンプト)で以下のようにします。

pip install ライブラリ名

また、PyPIに登録されていないPythonコードもあります。多くのプログラマは自分のプログラムをGithubで公開しているので、こちらでも探してみてください。

[https://github.com/]

便利なライブラリ10選!

Python入門者の皆さんに是非使ってみて欲しいライブラリを10個選んでみました。この章ではそれらを紹介するので、ぜひインストールして使ってみてください。

機械学習

NumPy

インストール方法

pip install numpy 

NumPyは科学計算・数値計算を行う際によく使われる、行列計算を高速に行うためのライブラリです。

実はPython自体はかなり実行速度が遅いことが知られています。そこでNumPyでは、よく使う行列計算をCやFortranで実装することで手軽に高速な行列演算ができるようにできています。

侍のNumPy記事一覧へ

Scikit-learn

インストール方法

pip install scikit-learn

Scikit-learnは様々な機械学習手法が実装されているライブラリです。

Scikit-learn(sklearnとも書かれることがあります)の実装にはNumPy/SciPy(科学計算向けのライブラリです)が使われているため、比較的高速に動作します。

あまりにも膨大な量の手法が実装されているため、適切な手法を選ぶにはScikit-learnのドキュメントに公開されているチートシートなどを参考にしてみてくださいね。

[Scikit-learnのチートシート 参考:https://scikit-learn.org/stable/tutorial/machine_learning_map/index.html]

侍のScikit-learn記事一覧へ

Matplotlib/Seaborn

Matplotlib

Seaborn

インストール方法

pip install matplotlib
pip install seaborn

MatplotlibとSeabornはPythonのグラフ作成ライブラリです。

基本的にはMatplotlibを使えば大抵のグラフ作成が可能です。棒グラフや折れ線グラフ、等高線などから複数のプロットをまとめてアニメーションを作ることも可能です。

例えば以下のようなグラフが簡単に作れます。

pltsub1

[Matplotlibを使ったグラフの例]

また、SeabornはMatplotlibのグラフを更にかっこよくしたり、PamdasというライブラリのDataFrameクラスをきれいに可視化したりなどができるライブラリです。

sns5

[Seabornを使ったグラフの例]

Pythonを使ってグラフを作る場合、メインでMatplotlibを使うのがオススメです。見た目を気にしたり、もっと複雑なグラフを作りたくなったときにSeabornを検討してください。

侍エンジニアのMatplotlib記事一覧へ

侍エンジニアのSeaborn記事一覧へ

Web

Flask

[http://flask.pocoo.org/static/logo/flask.png より]

インストール方法

pip install Flask

FlaskはPythonで簡単にWebアプリケーションやWebサイトを作る事ができるWebマイクロフレームワークです。PythonのWebフレームワークにはDjangoという有名なものがありますが、Flaskはもっと手軽に使うことができて初心者に最適です!

Flaskを使って最も基本的なWebページ表示をしてみましょう。

[サンプルコードは 【Python】フレームワークFlaskの基本をマスター より]

from flask import Flask
app = Flask(__name__)
 
@app.route('/')
def hello():
    hello = "Hello world"
    return hello
 
if __name__ == "__main__":
    app.run()

このコードを実行すると、Hello worldと表示されたWebページを見ることができます。

@app.routeのようなデコレータを関数につけるだけで、簡単にWebサイトを作る事ができます。

大規模なWebアプリケーションを作る場合はDjangoの利用を考えるべきですが、個人でぱぱっとWebアプリを試してみたいなら、Flaskは非常に有向です。ぜひ試してみてください。

侍エンジニアのFlask記事一覧へ

Requests

インストール方法

pip install requests

Requestsは、PythonでHTTPリクエストを行うためのライブラリです。

Pythonにはコレ以外にもHTTPリクエストのライブラリがありますが、現状では最もシンプルで使いやすい選択肢の一つだと思います。

侍エンジニアのRequests記事一覧へ

Selenium

[https://www.seleniumhq.org/より]

インストール方法

pip install selenium

また、これ以外にWebdriverというものが必要になります。Chrome driverをインストールするには、以下のページからドライバーをダウンロードして実行してください。

ChromeDriver – WebDriver for Chrome

Seleniumはウェブブラウザを使ったプログラムのテストを自動化するツールです。Python以外にも様々な言語から使うことができますが、Pythonから使うためのライブラリがPyPIにあるので、コレを使うことをおすすめします。

WebアプリケーションやWebサイトを作ったあとに、

  • 実際にちゃんと動くのかをテストしたい
  • Webページからスクレイピングしたい

などの要望があったとき、Seleniumは有効です。

実際にWeb Browserを動かしたときにしかわからないような操作を、Pythonのコードから設定することができます。

その他

collections

このモジュールは標準ライブラリに含まれるものなので、インストールは不要です。

collectionsは様々なコンテナデータ型を持ったライブラリです。特によく使われているのを見るのはCounter型でしょう。これは与えられたリストなどのそれぞれの要素の要素数を数え上げてくれます。

from collections import Counter

x = "QWERTYUIOPQWERTSDFGUIKJH"
y=  Counter(x)
y.most_common()

# 出力結果
[('Q', 2),
 ('W', 2),
 ('E', 2),
 ('R', 2),
 ('T', 2),
 ('U', 2),
 ('I', 2),
 ('Y', 1),
 ('O', 1),
 ('P', 1),
 ('S', 1),
 ('D', 1),
 ('F', 1),
 ('G', 1),
 ('K', 1),
 ('J', 1),
 ('H', 1)]

自分で実装することも容易ですが、標準ライブラリにすでに用意されているこのような機能を使うことで、車輪の再発明をしないで済みます。

tqdm

インストール方法

pip install tqdm

tqdmはプログレスバーを表示するためのライブラリです。

重い処理をするforループがあったときに、これがあとどのくらいで終わるのか、気になりませんか?そんなときは、tqdmを以下のように使うと進捗状態を監視できます。

L = [] 
for i in tqdm.tqdm(range(100)): 
    L.append(i**i**i)           
    
# 出力結果
8%|▊         | 8/100 [00:21<00:01, 52.99it/s]

プログレスバーはfor文がどこまで進んだかを表しているので、この表示を見て待ち時間にコーヒーを飲んだりできますね。自分で機械学習モデルを実装して、学習状況を監視するときなどにぜひ使ってみてください。

timeit

このモジュールは標準ライブラリに含まれるものなので、インストールは不要です。

timeitはPythonコードの実行時間を計測するモジュールです。Jupyter Notebook/ Labでも同名のコマンドがあるので、こちらのほうが有名ですね。

例えば、testという関数の実行速度を計測するには以下のようにします。

In [1]: def test(): 
   ...:     """Stupid test function""" 
   ...:     L = [] 
   ...:     for i in range(100): 
   ...:         L.append(i) 
   ...:  
   ...: if __name__ == '__main__': 
   ...:     import timeit 
   ...:     print(timeit.timeit("test()",  
   ...:           setup="from __main__ import test")) 
   ...:            
   ...:      
   ...:                                                                                    
# 実行結果
7.615369319000003

また、Jupyter上で同じことをする場合は以下のようになります。

# In[1]
def test(): 
    """テスト関数""" 
    L = [] 
    for i in range(100): 
        L.append(i)           
# In[2]
%timeit test()
# 実行結果
100000 loops, best of 3: 10.5 µs per loop

timeitはJupyter上で使った方が簡単ですが、普通にモジュールの中に書くとしても、大した手間ではありません。コードの実行速度が気になるときには手軽に使える優秀な機能です。

まとめ

この記事では、Python初心者・初学者に使ってもらいたいおすすめライブラリ10選を紹介しました。

  1. NumPy
  2. Scikit-learn
  3. Matplotlib
  4. Seaborn
  5. Flask
  6. Requests
  7. Selenium
  8. Collections
  9. tqdm
  10. timeit

どれも面倒なプログラムを手軽に使うことができる、強力なライブラリです。ぜひ使い方を覚えて、Pythonを使ったプログラミングを楽しんでください!

この記事を書いた人

第一言語はPythonです。
皆さんRustやりましょう。

目次