Pythonトップライブラリ2018


Pythonは、学習初期でも先人の作ったライブラリを利用することで、高速に開発が可能になります。 Pythonライブラリを管理する PyPi.org では、現在 100万以上のライブラリが公開され、現在も増加中です。 前回の記事は2018年の大人気のライブラリを紹介します。

 

年末でKdnuggetsがGithubの「星」と投稿者の人数とコメント数からトップ15のライブラリを発表しました。下記の図はGithubの「星」と投稿者の人数で表します。ては、ライブラリを軽いに紹介します。

py_lib_2018_02

1 – TensorFlow (投稿者 – 1757, コメント数 – 25756, – 116765)

Googleの機械学習/ディープラーニング/ネットワークライブラリです。柔軟なアーキテクチャにより、1つのAPIを使用してデスクトップ、サーバー、またはモバイルデバイスの1つ以上のCPUまたはGPUに計算を展開できます。またコードはやや書きにくいのが特徴になります。PyTorchおよびChainerの利点はDefine by Run(動的計算グラフ)と呼ばれる特徴です。Define by Runは入力データのサイズや次元数に合わせてニューラルネットワークの形や計算方法を変更することができます。

 

 

 

2 – pandas (投稿者  – 1360, コメント数 – 18441, – 17388)

機械学習やディープラーニングの前処理のために、データの集計をするライブラリになります。数値や時系列のデータの操作や、データ構造をいじったりすることができます。また最近では、可視化も可能になってきています。

 

 

3 – scikit-learn (投稿者 – 1218, コメント数 – 23509, – 32326)

NumPy, SciPy や Matplotlib と互換性を持つように開発されてクラスタリングや回帰、分類器、次元圧縮、データの前処理をはじめとする、機械学習のアルゴリズムを幅広く実装しているライブラリです。

 

4 – PyTorch (投稿者 – 861, コメント数 – 15362, – 22763)

Python向けのオープンソース機械学習ライブラリで、Facebookの人工知能研究グループにより初期開発されました。PyTorchおよびChainerの利点はDefine by Run(動的計算グラフ)と呼ばれる特徴です。Define by Runは入力データのサイズや次元数に合わせてニューラルネットワークの形や計算方法を変更することができます。

 

5 – Matplotlib (投稿者 – 778, コメント数 – 28094, – 8362)

Pythonでグラフを描画するときなどに使われる標準的なライブラリです。 画像を描画だけではなく、簡単なアニメーションやインタラクティブなグラフを作ることも可能です。2次元のプロットや、3次元プロットの様々な種類のグラフを描画する能力のライブラリです。

 

6 – Keras (投稿者 – 856, コメント数 – 4936, 星 – 36450)

TensorFlowやCNTK、Theanoといった他の深層学習(ディープラーニング)のライブラリの上部で動くような作りになっており、それらのライブラリよりも、より簡単にモデル(深層学習のネットワーク)を作ることができるよう設計されています。

 

7 – NumPy (投稿者 – 714, コメント数 – 19399, – 9010)

配列(リスト)計算を高速にするためのPythonのライブラリです。Pythonには標準の機能としてリスト型変数がありますが、numpyは計算に特化したnumpy配列というものを扱います。

 

8 – SciPy (投稿者 – 676, コメント数 – 20180, – 5188)

SciPy は、科学技術計算での共通の問題のための多様なツールボックスがあります。統計、最適化、積分、線形代数、フーリエ変換、信号・イメージ処理、遺伝的アルゴリズム、ODE (常微分方程式) ソルバ、特殊関数、その他のモジュールを提供するライブラリです。

 

9 – Apache MXNet (投稿者 – 653, コメント数 – 9060, – 15812)

MXNet(エムエックスネット)とは、「効率」と「柔軟性」を両立したディープラーニングフレームワークです。AWSが公式サポートを表明したことで大きな注目を集めています。様々な深層学習モデルをサポートしており、一般知名度こそTensorflow、PyTorchに及びませんが非常に人気があります。

 

10 – Theano (投稿者 – 333, コメント数 – 28060, – 8614)

Theano はUniversité de Montréal の LISA/MILA Lab により開発された、オープンソースのDeep Learningとかニューラルネットの実装フレームワークです。数学的表現(多次元配列など)を持つ数式に対して定義/最適化/評価を行います。

標準的数値計算ライブラリ「Numpy」では「計算手続き」を記述するのに対して、「Theano」では「数式そのもの」を記述します。そのため、計算対象となる行列などのプログラム内での処理に手間をかける必要がありません。

                                                                                      

11 – Bokeh (投稿者 – 334, コメント数 – 17395, – 8649)

インタラクティブなグラフを作成できるデータ可視化ライブラリです。グラフを画像ファイルとして生成するのではなく、WEBブラウザで表示できるHTMLファイルやWebアプリとして生成は可能です。また、ボタンやスライダー等を組み合わせることもできます。

 

 

12 – XGBoost (投稿者 – 335, コメント数 – 3557, – 14389)

逐次的に弱学習器を構築し、予測モデルを生成するものをブースティングといい、その中でも弱学習器を構築する際に損失関数の最小化に勾配降下法を用いるものを勾配ブースティングと言います。CPU外でも学習が回せるため、大規模なデータも処理できるライブラリです。

 

13 – Gensim (投稿者– 301, コメント数 – 3687, – 8295)

gensimは、LSI、LDA、DTMなど様々なトピックモデルを実装したPythonライブラリです。また、word2vecのようなword embedding手法もgensimから使うことができます。自然言語処理の分析の際に用います。

 

14 – Scrapy (投稿者 – 297, コメント数 – 6808, – 30507)

Webクローリングとスクレイピングのフレームワークのライブラリです。Webページのリンクをたどって巡回し、Webページの情報をダウンロードすること、ダウンロードしたWebページの情報(htmlファイルなどの機能があります。

 

15 – Caffe (投稿者 – 270, コメント数 – 4152, – 26531)

C++で実装されたディープラーニングのオープンソースライブラリ。カリフォルニア大学バークレー校の研究センターBVLCが中心となって開発、C++・Python・MATLABで利用可能です。