RとPythonの比較
データ分析のツールとして代表的な存在である、RとPythonを比較します。どちらも、無償のオープンソースプログラミング言語である点は共通しています。
Rが統計解析用のプログラミング言語としてはじめから開発されているのに対し、Pythonは汎用のプログミング言語として開発され、統計解析用のライブラリを充実させてきたという、言語の開発コンセプトと開発経緯に違いがあります。例えばRはライブラリなしで、データの可視化や回帰分析といった基本的なデータ分析を行うことが可能です。Pythonは何をするにもまず、PandasやNumPy、あるいはStatsmodelsといったライブラリをインポートするところからはじまります。
細かい話ですが、dfという名前のデータフレームからi行j列目の要素を参照するのに、Rではdf[i, j]と書くのに対し、Python(Pandas)ではdf.iloc[i-1, j-1]と書くという違いがあります[1]配列を1から数えるか0から数えるかの違いであり、Pythonではdf.iloc[i, … Continue reading。Pythonは配列を0から数えるためですが、これはC/C++なども同じであり、Pythonだけが特殊というわけではありません。しかしプログラミングを専門としていない多くの人にとっては、Rの方が自然な書き方に見えるのではないでしょうか。
Rは統計学およびそれに関連する学問分野を中心に、アカデミアでのプレゼンスが高く、Pythonはビジネス現場でのプレゼンスが高い印象です。
統計解析の機能は、PythonよりRの方が充実しています。またRはベースに基本的な統計解析の機能を備えているため、Pythonと比べると実行が容易であるというメリットもあります。
機械学習はRもライブラリを使用するのが一般的ですが、最新のライブラリはPythonの方が先にリリースされる傾向にあります。深層学習(ディープラーニング)ではさらに、その傾向が強まります。
ベイズ学習(ベイズモデリング)に関するライブラリは、Rの方が先にリリースされる傾向にあります。ベイズ統計およびベイズ学習に関する書籍も、Rの方が多い印象です。
項目 | R | Python |
---|---|---|
特徴 | 統計解析用のプログラミング言語 | 汎用のプログミング言語 統計解析用のライブラリが充実 |
主なユーザー | アカデミア研究者 データサイエンティスト |
機械学習エンジニア データサイエンティスト |
統計解析 | ★★★ | ★★ |
機械学習 | ★★ | ★★★ |
深層学習 | ★ | ★★★ |
ベイズ学習 | ★★★ | ★★ |
学習コストは一般に、RよりPythonの方が高いといわれています。しかしソフトウェアエンジニアやプログラマーにとっては、統計解析に特化したプログラミング言語であるRの方がむしろ異質に感じられ、汎用的なプログラミング言語であるPythonの方が馴染みやすいという意見もあるかもしれません。
RとPythonのどちらを学ぶべきか
「RとPythonのどちらを学ぶべきか」という質問への回答は、質問者の立場によって変わってきます。
もしあなたがデータサイエンティストを目指すのであれば、RとPythonの両方を学ぶことをおすすめします。参考書もRのコードが書かれたものと、Pythonのコードが書かれたものが同程度に存在します。どちかに絞ることは、学習の幅を狭めることに繋がります。
もしあなたが機械学習エンジニアやAIエンジニアを目指すのであれば、Pythonを学ぶことをおすすめします。特に深層学習(ディープラーニング)の分野では、Pythonの独壇場といっても過言ではありません。
もしあなたがソフトウェアエンジニアやプログラマーである、またはそれを目指している立場であり、一般教養としてデータサイエンスを学びたいということであれば、道具としてPythonを使うことをおすすめします。
もしあなたがそれ以外の立場であり、一般教養としてデータサイエンスを学びたいということであれば、道具としてRを使うことをおすすめします。あるいは、各種の有償ソフトウェアを利用するのも選択肢のひとつです。
脚注
1 | 配列を1から数えるか0から数えるかの違いであり、Pythonではdf.iloc[i, j]は0から数えてi行j列目の要素を参照している、といった方が正確かもしれません。 |
---|