本コンテンツで使用しているライブラリの一覧#

本コンテンツで利用している主要なライブラリは以下の通りです。

標準ライブラリ#

datetime#

時刻のデータを取り扱うためのクラスたちが格納されている標準ライブラリです。同じく標準ライブラリの time と違ってオブジェクト指向であったり、時間と日付を分けて扱えたり、時刻の差分が簡単に扱えたりするため、時刻データを処理する際にはこちらの方がよく使われます。

import datetime

itertools#

イテレータを構成するための関数やクラスたちが格納されている標準ライブラリ。長くて複雑な処理を関数型プログラミング風味で短く簡潔に書くために、 map() 関数や filter() 関数や functools ライブラリと組み合わせて使われます。

import itertools

math#

数論に関する関数、指数関数、対数関数、三角関数、双曲線関数、その他の基本的な特殊関数など、(複素数関連を除く)各種の数学関数が格納されている標準ライブラリ。実用上はNumPyやSciPyを使いたくない場合によく利用されます。

import math

random#

(擬似)乱数を生成するための標準ライブラリ。メルセンヌツイスタと逆関数法を利用した整数、実数、角度を含む各種の基本的な乱数生成器が実装されているが、実用上はやっぱりNumPyやSciPyを使いたくない場合によく利用されます。

import random

time#

時刻に関する情報を取り扱うための標準ライブラリ。同じく標準ライブラリの datetime の方がよりオブジェクト指向で使い勝手がいいこともあり、実用上は time.time() 関数でプログラムの実行時間を計ったり time.sleep() 関数でスレッドを一時的に停止したりするためによく利用されます。

import time

warnings#

警告を制御するための標準ライブラリ。実用上は warnings.filterwarnings() 関数でライブラリの発する警告を抑止するために使われることが多い。

import warnings

外部ライブラリ#

Python Control Systems Library#

フィードバック制御システムの解析と設計に必要な標準的な操作を実装したライブラリで、特にサブモジュールの cotrol.matlab にはMATLAB Control System Toolboxと近い内容およびUIのクラスや関数が多数格納されています。動作にはNumPyとSciPyが必要で、さらにグラフの描画にはMatplotlibが、またMIMO関連などの一部機能には同じ開発元のSlycot (Subroutine Library in Systems and Control Theory) というライブラリ必要になります。

import control as ct
from control.matlab import *

Matplotlib#

Scientific Pythonエコシステムの核となる数値処理ライブラリの1つで、主に2次元の描画機能を提供しています。同じくScientific PythonエコシステムのシェルであるIPythonやデータ解析ではおなじみのJupyter Notebook上で簡単に利用・表示できることも手伝って広く使用されています。

import matplotlib as mpl
import matplotlib.pyplot as plt

NetworkX#

グラフ理論や複雑ネットワークに関連するデータ構造や操作を多数実装したライブラリです。データ分析においては、ベイジアン・ネットワークや統計的因果推論でグラフ構造に関する処理を行いたい場合などにしばしば利用されます。

import networkx as nx

NumPy#

Scientific Pythonエコシステムの核となる数値処理ライブラリの1つで、多次元配列とその数値演算に関する豊富な処理を実装しています。NumPy配列には各精度の整数と実数のみならず複素数、bool値、バイト列なども格納できるので、これらの配列を高速で処理したい場合に単なるコンテナとして利用するのも存外有効だったりします。

import numpy as np

Optuna#

機械学習におけるハイパーパラメータ最適化のためのライブラリで、TPEなどの大域的最適化手法をdefine-by-runのスタイルで実装しています。最適化の結果を可視化するためのAPIも充実しており、さらに同じ開発元の optuna-dashboard ライブラリを併用すればブラウザ上で途中経過をリアルタイムに確認することもできます。

import optuna

pandas#

Scientific Pythonエコシステムにおける統計分野向けライブラリの1つで、主にデータ分析用の数表とその上での処理を実装しています。各種フォーマットに対応したI/O機能が充実している一方、データのモデリングに関する機能はほとんど実装されておらず、実際にデータ分析する際はstatsmodelsやscikit-learnなどと組み合わせて使うことが想定されています。

import pandas as pd

Plotly Python Open Source Graphing Library#

Plotlyはデータを可視化してインタラクティブに操作できるグラフを作成するためのライブラリ群です。Plotlyで作成したグラフはその一部分を自在に拡大したり、マウスのオーバーフローで対応するデータの値を表示させるなどができます。ベースはJavaScriptで実装されています(plotly.js)がPython向けのAPI(plotly.py)も提供されており、単に「Plotly」と言った場合はこのPython向けAPIを指すことも多いです。

import plotly.express as px

SciPy library#

Scientific Pythonエコシステムの核となる数値処理ライブラリの1つで、NumPyを用いて実装した科学技術計算に関する多様なサブモジュールを包含しています。具体的には数値積分、線形代数、最適化、信号処理、統計処理など。

from scipy import stats  # 各サブモジュールをimportすることが推奨されている
from scipy.stats import norm  # 代わりに各クラス・関数でもよい

seaborn#

Scientific Pythonエコシステムにおける統計分野向けライブラリの1つで、Matplotlibを拡張してpandasのデータ構造と一貫して統計的なグラフ描画する機能を提供しています。興味のあるラベル毎の比較プロットや散布図とヒストグラムを整然と並べた図など、探索的データ解析で頻用するようなグラフへの高レベルAPIが数多く実装されているのも特徴の1つです。

import seaborn as sns

scikit-learn#

SciKits (SciPy Toolkits) の1つ、またScientific Pythonエコシステムにおける機械学習分野向けライブラリの1つで、多数の教師あり・教師なし学習の手法とその可視化機能を含む統合的なライブラリです。データの前処理から特定のモデルによる学習と予測、交差検証によるモデル選択とその評価までを一貫性のあるオブジェクト指向のAPIで提供しています。

from sklearn import linear_model  # 少なくとも各サブモジュールをimportしなければならない
from sklearn.linear_model import LinearRegression  # コード例では一般に各クラス・関数がimportされる

statsmodels#

Scientific Pythonエコシステムにおける統計分野向けライブラリの1つで、統計的推論や統計的検定のための多様な処理とモデルを提供しています。一般化線型回帰や一般化加法モデル、分散分析、状態空間モデルを含む時系列解析や生存時間解析など、古典的な統計的手法が数多く実装されています。pandas形式のデータと組み合わせてRのformulaと近い形で回帰モデルを定義できる機能もあります。

import statsmodels.api as sm
import statsmodels.tsa.api as tsa
import statsmodels.formula.api as smf

SymPy#

Scientific Pythonエコシステムにおける記号処理分野向けライブラリの1つで、数学的な記号計算の処理を実装しています。具体的には多項式の展開や因数分解、微積分、方程式の求解、組み合わせ論、数論、幾何学、物理学、統計学など。慣れれば数式の煩雑な手計算を避けるための「電卓」的な利用も十分可能です。

import sympy