
NewmonzのPythonコース受講生へのレッスンもあって、このところ自分自身もPythonに触れる機会が多くなってきました。
Pythonはとてもシンプルで洗練された言語で、比較的誰が書いても同じようなコードで記述することができます。その点で言えば、他の言語のように「あんな書き方やこんな書き方もできる」といった、覚えなければならないことも少ないです。なので、初学者にとって大変学びやすい言語であると言えます。
ところでPythonといえばやはり、データ分析や機械学習の分野に強い、というイメージがあるのではないでしょうか。
最近特に関心の高まっているそれらの分野でPythonが支持を集めている大きな理由として、 「非常に優れた外部ライブラリが豊富にそろっている」ことが挙げられます。今日は特に有名なライブラリについて、自身の整理のためにも書いておきたいと思います。特に「こんなことをするにはこのライブラリ」という利用イメージが持てれば良いなと思います。
機械学習・データ分析
scikit-learn
scikit-learnは、Pythonの代表的な 機械学習 用ライブラリです。「サイキット・ラーン」と読みます。
オープンソース(BSD license)で公開されており、個人/商用問わず、誰でも無料で利用することができます。
機械学習アルゴリズムを幅広くサポートしており、「分類回帰クラスタ分析」「ニューラルネットワーク」「サポートベクターマシン」「ランダムフォレスト」「k近傍法」などを手軽に実装できます。
TensorFlow
TensorFlowは、機械学習の中でも ディープラーニング のための機能が豊富に揃ったライブラリです。「テンソルフロー」と読みます。
Tensor (テンソル)とは「多次元配列」のことで、線形的な量を表す概念を一般化したものです。
つまりTensorFlowは、多次元のデータ構造を流れるように処理することができるディープラーニング用のライブラリであると言えます。
numpy
numpyは、Pythonにおいて数値計算を効率的に行うための拡張モジュールです。 ベクトルや行列などを表現できる「多次元配列」を操作するための、大規模で高水準な数学関数ライブラリを提供してくれます。
Scipy
SciPyはNumPyを元に実装された、さらに高度な数値計算処理用ライブラリです。統計、最適化、積分、線形代数などを、Pythonから簡単に利用することができます。
pandas
pandasは、数表および時系列データを操作するためのデータ構造と演算を提供してくれる、データ解析支援ライブラリです。データフレーム形式(2次元テーブル形式)を扱うことができ、特に時系列データ分析に向いています。
matplotlib
matplotlibは様々な種類のグラフを描画する機能を提供してくれるライブラリです。2次元プロットの描画が主な役割ですが、最近は3次元プロットの機能も追加されてきています。
描画したグラフを各種形式の画像として保存したり、一般的なGUIアプリケーションにグラフの描画機能を組みこむこともできます。
スクレイピング
Beautifulsoup
Beautifulsoupは スクレイピング のためのライブラリです。スクレイピングとは、様々なWebサイトを対象にして、そのHTMLから必要な情報を取得することを言います。