【5分で分かる】PythonとRの違いをデータサイエンティストが徹底比較!結局どっちがいいの?

目次
ウマたん本記事では、データ分析の言語として非常によく使われるPythonとRのどっちを使いべきなのか、何が違うのか、という議論をしていきたいと思います。昔Rを使っていて最近はPythonばっかり使っている人間がPythonとRの違いを徹底比較していきますので是非理解してくださいね!
こんにちは!
データサイエンティストのウマたん(@statistics1012)です。
元々大学院の研究でRを使っていたのですが、企業に入ってからはPythonを使うことが多くなりました。
やはりアカデミックの場ではRが使われることが多いのですが、実務の場ではより広範な範囲を抑えているPythonを使っているケースが多いです。
ロボたんなんとなーく使っているけど、Pythonの違いってRの違いって結構曖昧だよなー・・・
ウマたんそうだよねー、PythonにはPythonの良さがRにはRの良さがあるからそこを徹底的に比較していくよ!
そんな経験もふまえて、この記事ではRとPythonの違いを徹底比較していきたいと思います。
以下の動画でも解説していますのでチェックしてみてください!
Pythonの特徴

まずはじめにPythonの特徴についてカンタンにおさえておきましょう!
Pythonは、1991年に開発された言語であり、非常に分かりやすくコードがシンプルであることが特徴的な言語です。
C言語やJavaなどに比べると初心者の敷居が低いプログラミング言語と言えます。
ただ敷居が低いからといって、応用範囲が狭いわけではありません。
データ分析の文脈で使われることは確かに多いですが、単純なデータ分析以外にもできることの幅は広く様々なことが可能です。
API連携やWebアプリケーション開発を行えるのでエンジニアに人気な言語でもあります。
【入門初心者向け】PythonでWebアプリを作ってみた!開発方法徹底解説!当サイト【スタビジ】の本記事では、PythonのWebアプリケーションフレームワークを用いてWebアプリを開発していく方法を徹底解説していきます。実際にDjangoでの実装とFlaskでの実装をおこなっていったあと、勉強法についても見ていきましょう!
AIやデータサイエンスの技術を組み込んだWebアプリケーションを作成する場合はマストでマスターしたい言語ですね!
また、Pythonはディープラーニングの実装に必要なライブラリが多数備わっていて、Rとの差別化ポイントになっています
【初心者向け】Pythonでできること7選!サンプルコードをまじえて解説!当サイト【スタビジ】本記事では、Pythonでできることを7つまとめていきます!!Pythonで何ができるのか分からない状況から深い理解にもっていきますよー!実際にPythonでの実装例や勉強方法も取り上げているのでぜひご自分の環境で手を動かして実装してみてくださいね!
Rの特徴

続いて、Rの特徴について見ていきましょう!
Rは1995年に開発された言語で、統計解析専門の言語になっています。
機械学習手法・統計解析まわりのライブラリはそろっており、データ分析において利用されるシーンが多いです。
先ほどPythonはデータ分析以外にも出来ることが多いと述べましたが、RはPythonのように幅広い利用は出来ずデータ分析がメインになっております。
一方でビジュアル化や統計解析に関しては非常に簡単に実装でき結果も分かりやすく優位性があります。
ウマたんRはビジネスよりも学術的な方で使われるイメージがあるね!
結局PythonとRってどっちがいいの?

さて、PythonとRの特徴についてそれぞれ述べてきました。
ロボたんなんとなーくそれぞれの特徴は分かったけど、結局どっちがいいの?
ウマたん曖昧な表現になってしまうけど、シーンによってやっぱり使い分けることが重要かな!
正直、どちらの言語も一長一短でどっちが確実に優れているとは言えません。
ただ、個人的には現在Pythonをほぼ使っているので、Pythonを使っておけばまず間違いないとは思っています。
ただ時と場合によってはもちろんRの方が優秀なケースもあるのでやはり使い分けが大事なんですけどねー!
どんなシーンにPythonとRのどちらが有用か簡単に見ていきましょう!
データ分析以外の汎用性であればPython!
先ほどもお話しした通り、Pythonはサーバサイド言語として使うことのできる優秀な言語です。
ウマたんデータ分析だけじゃないのがPythonの魅力だよ!!
結局Webアプリケーションに組み込んだり、API連携など、サーバーサイド言語として利用する際はPythonが有用です。
そのため、エンジニアはPythonを使用することが多いです。
大規模データを扱うならPython!
Rだとメモリを食いやすいため、大規模データを扱う際はPythonが向いています。
また処理速度的にもPythonが優れているケースが多く、データ量が多い時はPythonを使うことをオススメします。
ウマたんログデータなどを扱う時は数億レコードの解析もザラだからね!
ディープラーニングを実装するならPython!
ディープラーニングを実装するならPythonが必須!
Rにも一部ディープラーニングを実装するライブラリはありますが、Pythonの方が豊富にそろっています。
ウマたんそうなんだよー、ディープラーニング系はPythonが必須・・・
またディープラーニングを実装するとなると必然的に大規模データになり処理が重くなるのでRよりもPythonの方がよくなりますね。
簡潔な記述ならR!
ここまでは圧倒的にPythonの方が良さそうに思えますが、Rは簡潔な記述が強みです。
簡単な統計的検定を行う際や回帰分析などの統計解析の枠組みで行う解析の実装と可視化はRの方が簡単に行うことができます。
そのため慣れている人は簡単な統計解析はRで行うという場合は多いみたいです。
ウマたんPython偏重になってしまっていて、あまりRとの使い分けは出来てないんだけどね・・
予測はPython、説明はR
機械学習と統計学にはスタンスの違いがあります。
機械学習は予測精度を追究し、統計学は現状構造の説明を追究する。
ウマたん機械学習と統計学の違いは結構大事!
先ほどのディープラーニングをはじめとした最新の手法群はPythonの方が早い段階でパッケージ化されて使えるようになる印象があります。
一方でRは統計学的スタンスに立っているので、現状のデータを簡単に把握することが出来ます。
機械学習的スタンスと統計学的スタンスの違いからPythonとRを見ていただけると違いが分かりやすいかもしれません。
機械学習と統計学/多変量解析の違いについてデータサイエンティストがモノ申す!!当サイト【スタビジ】の本記事では、データサイエンスの領域の機械学習と統計学の違いについて考察していきます。定義と境界が曖昧な2つの領域ですが、目的の違いを理解しておくことが大事。機械学習は予測精度を上げることを目的とし統計学はデータ構造の把握をすることを目的とします。
PythonとRでの実装を見てみよう!

それでは実際にPythonとRでの実装を見ていきましょう!
データ分析のデータセットとして超定番のirisデータを使っていきます。
ウマたんirisデータは分かりやすいからよーく登場するよ!!
irisデータとはあやめの種類を分類したデータで目的変数は3カテゴリーの質的変数、説明変数は花びらの幅とか4つです。
サンプルは150個で、分類しやすいデータなのでどんな手法でも割と簡単に分類できるんですが、PythonとRでそれぞれ書いてみるとどうなるでしょう??
ウマたんどんな手法でも比較的分類しやすいから精度比較をする上ではあまり不適切かなー!
手法はランダムフォレストという決定木をアンサンブル(バギング)した手法を使用していきます。
まずはRから!
#ライブラリの読み込み
library(randomForest)
#irisデータの読み込み
data<-iris
ndata<-nrow(data)
#学習データと予測データに分割
ridx<-sample(ndata,ndata*0.5)
data.learn<-data[ridx,]
data.test<-data[-ridx,]
#randomforest
forest<-randomForest(Species~.,data=data.learn)
pred.forest<-predict(forest,newdata=data.test,type="class")
table(pred.forest,data.test[,5])
最終的に予測に対しての実測値をマトリックスで表した表が返ってきます。
pred.forest setosa versicolor virginica
## setosa 29 0 0
## versicolor 0 25 1
## virginica 0 2 18
まあそれなりの精度で当てられるわけなのですが、これをPythonで実装すると以下のようになります。
# ライブラリの読み込み
from sklearn.ensemble import RandomForestClassifier
from sklearn import datasets
from sklearn.metrics import confusion_matrix
from sklearn.model_selection import train_test_split
# irisデータの読み込み
iris = datasets.load_iris()
# 特徴量とターゲットの取得
data = iris['data']
target = iris['target']
#学習データをテストデータを分割
train_data,test_data,train_target,test_target = train_test_split(data,target,test_size=0.5)
#モデル学習
model = RandomForestClassifier(n_estimators=100)
model.fit(train_data, train_target)
# 混合行列を表示
pred_data = model.predict(test_data)
confusion_matrix(test_target, pred_data)
基本的にそれほど変わらないのですが、Pythonの方は可視化する際にライブラリをインポートしていますが、Rは標準で備わっていますね。
また、Rは目的変数を含んだデータフレーム型でデータセットを持っておりそのままモデル構築時に目的変数を指定していますが、Pythonは目的変数(ターゲット)と説明変数が別々に格納されております。
PythonとRをそれぞれ勉強する方法

PythonとRの違いについて徹底的に見てきましたが、実際それらをどのように勉強していけばよいでしょうか?
それぞれの勉強方法についておさえておきましょう!
Pythonのオススメ勉強法
Pythonは色々なサービスが展開していて学べるところはたくさんありますが・・・
まずは、以下のUdemyのPythonを学べるコースをご受講してみるのがオススメです!
僕自身が講師を努めており、非常に分かりやすくまとめているつもりです!
また、PyQというサービスもオススメ!Python特化のオンライン学習サービスで、ひたすらPythonコーディングを行うのにオススメです。
データサイエンスの理論まわりはあまり深く扱っていません。
【体験談】PyQの評判は?3か月本気でPythonを勉強してみたので徹底レビュー!PyQはPythonを学ぶ上で非常にオススメで評判の高いサービスです。ただ、他のサービスとの違いが分かりにくいのも事実。そこで当サイト【スタビジ】では、実際にPyQを3か月体験した僕がPyQのメリット・デメリット・評判について徹底的にレビューしていきます!
ただUdemyやPyQは個人で進めることになるので、なかなかモチベーションも続きません。
僕自身なかなかお尻に火がつかない人間でプログラミングスクールに通ってPythonを勉強した経験もあります。
完全独学で勉強するのに自身のない人はぜひプログラミングスクールに通ってみることをオススメします!
僕自身は、テックアカデミーというスクールに通ったことがありますがメンターのクオリティが高いのでおすすめです!
しかしプログラミングスクールは高い・・・!ということで他と比べて圧倒的に安く学べるデータサイエンススクールを当メディアで運営しています。
その名もスタビジアカデミー(スタアカ)!
例えば以下の内容をミッチリ学んでいきますよー!!
興味のある方は是非チェックしてみてくださーい!
ご受講お待ちしております!
世の中には他にもたくさんPythonを学べるスクールはあります。以下の記事で比較していますのであわせてチェックしてみてください。
【2022年最新】Python学習に最適なオンラインスクールおすすめ6選当サイト【スタビジ】の本記事では、実際にスクールに通ったりWebサービスを利用したりしながらPythonを習得した僕がおすすめするオンラインメインのスクールを紹介していきます。正直Python学習スクールは乱立し過ぎていてどれを選べばよいのか難しい!そんな人にぜひ読んで欲しいです
そしてある程度Pythonの素地が出来上がった後は、データ分析コンペティションのKaggleに挑戦してみることをオススメします!
Kaggleでは企業から提供されるデータを基にお題に沿って精度の高いモデルを構築していきます。
【初心者向けKaggle入門】Kaggleの勉強法とサブミットの前準備!当サイト【スタビジ】の本記事では、Kaggleについて解説していきKaggleに挑戦するまでにどのようなことを勉強しておいたらよいのか丁寧に解説していきます。ある程度データサイエンスの土台が出来た後はKaggleに挑戦し、世界各国の猛者と凌ぎを削りましょう!
Pythonの勉強法については以下の記事でまとめていますので是非チェックしてみください!
【Python独学勉強法】Python入門を3ヶ月で習得できる学習ロードマップ当サイト【スタビジ】の本記事では、過去僕自身がPythonを独学を駆使しながら習得した経験をもとにPythonを効率よく勉強する方法を具体的なコード付き実装例と合わせてまとめていきます。Pythonはできることが幅広いので自分のやりたいことを明確にして勉強法を選ぶことが大事です。
Rのオススメ勉強法
正直Rに関しては研究時に論文を読んだり、実際に先行研究のRコードを眺めたりしながら勉強していたので明確な勉強法を伝えるは難しいのですが、以下の書籍が比較的分かりやすくオススメです!
Rを学べるサービスはあまりないんですよね・・・
Rのおすすめ勉強書籍については以下の記事でまとめています。
厳選10冊!統計・データ解析(R・Python)の勉強に参考になるおすすめ本当サイト【スタビジ】の本記事では、PythonとRを勉強するのにおすすめな書籍を徹底的にまとめていきます!書籍だと続かない・・・という人のために書籍以外の勉強法についても紹介していきますのでぜひチェックしてみてください!
PythonとRの違い まとめ
PythonとRの違いについて徹底的に比較してきましたが、結局どちらも一長一短で使い分けるべきだよーってことです。
一概には言えませんが、アカデミックの世界ではRを使っている方が多く、ビジネスの世界ではPythonを使っている方が多い印象です。
最近はだいぶPythonに偏重してしまっていますが、たまにはRも使ってみるかなーと書きながら思いました。
ロボたんあんまり違いが分かっていなかったので勉強になったよ!
ウマたんまあ結局はRもPythonも手段だからね!目的を見失わないようにしようね!
そうなんです。
結局はいくらRが使えてもPythonが使えてもデータから何も生み出せなければ意味がない。
あまり手段にこだわりすぎず、目的を見失わないようにしたいですね!(自戒)
データサイエンティストへの勉強法について以下の記事でまとめていますので是非こちらもあわせてチェックしてみてください!
【5分で分かる】データサイエンティストに必要なスキルと独学勉強ロードマップ!当サイト【スタビジ】の本記事では、データサイエンティストに求められるスキルとそれを身に付けるための勉強法について徹底的にまとめていきます!入門者でも、しっかりデータサイエンティストについて理解しある程度独学で駆け出しの状態までいけることを目指します。読んだ内容を、スタアカの「データサイエンティスト」コースで身につける
データサイエンス・AIを、動画と課題で体系的に学べるオンラインスクール。最初のレッスンは無料で見られます。




