このほど、「matloff/R-vs.-Python-for-Data-Science|GitHub」に、データサイエンスで利用するという観点からプログラミング言語であるRとPythonを比較した記事が掲載された。これまで、データサイエンスの分野ではRが使われることが多かったが、近年はPythonの利用が進んでいる。
記事の執筆者であるNorm Matloff氏はカリフォルニア大学デービス校におけるコンピュータサイエンスの教授。以前は、同大学で統計学の教授だったようだ。同氏はR関連の書籍を4冊執筆しているほか、現在はR Journalの編集長を務めている。同氏はこれまでの経験および統計学者/コンピュータ学者という視点から、今回のトピックに関して有用な光を当てることができるだろうと説明している。
執筆段階で掲載されている比較の主な内容は次のとおり。
| 項目 | 内容 |
|---|---|
| 優雅さ | 明らかにPythonの勝ち。主観的ではあるもの、これまでさまざまなプログラミング言語を使ってきた経験や教育してきた経験から、Pythonにおける括弧や中括弧の利用が大幅に減少したことにとても感謝している |
| 学習曲線 | Rの大勝利。Pythonを使ってデータサイエンスを始めるにはNumPy、Pandas、matplotlibなど、Python以外のライブラリについて学ぶ必要がある。また、パッケージ構成も時に難しい。Pythonに比べると、Rには行列型と基本的なグラフが最初から組み込まれており、数分以内に簡単なデータ解析を行うことができる |
| データサイエンス向けライブラリ | Rがちょっとだけ優勢。CRANに登録されているパッケージは1万4000個ほど、PyPIに登録されているパッケージは18万3000個ほどとPytPIのほうが多い。しかし、データサイエンスに関するものはそれほど多くない |
| 機械学習 | Pythonがちょっとだけ優勢。多くの人にとって機械学習はNNを意味しており、NN用ソフトウェアの多くはPythonに関連している |
| 統計的な正確さ | Rの大勝利。Rは統計学者によって統計学者のために開発されている |
| 並列計算 | 引き分け。RもPythonもベースバージョンはマルチコア計算に対して優れたサポートを提供しているとは言い難い |
| C/C++インタフェース | Rがちょっとだけ優勢。どちらにもC/C++インタフェースは存在しているが、PythonのそれはRと比べるとそれほど強力なものではない |
| オブジェクト指向/メタプログラミング | Rがちょっとだけ優勢。どちらもオブジェクト指向をサポートしているが、RのほうがPythonよりも真剣度が高い |
| 言語の統一性 | Rはとてもひどい状況。Rは複数の実装系が存在しており、使っていない実装系のコードは読むことが難しい状況になっている |
| リンクデータ構造 | Pythonの勝ち。Pythonでは簡単に実装することができる |
| オンラインヘルプ | Rの大勝利。Rのhelp()関数はPythonよりも情報が多い |
データサイエンスはRが使われることが多いが、最近ではPythonを使うユーザも増えている。Pythonはデータサイエンスのみならずさまざまな分野で使われており、活躍の場を広げている。
