コース: データサイエンスの基礎:基本

データサイエンスのプログラミング言語

サックスは 私の大好きな楽器で、 よく聴く上に、自分でも習っています。 ただ不思議なことに、 サックスだけしか演奏しない人は、 なかなかプロとしてステージに立てません。 少なくとも、アルトサックスと テナーサックス、フルート、 クラリネットは 吹けないといけないようです。 場合によっては、オーボエ、 イングリッシュホルン、バスーン、 バスクラリネット、さらには リコーダーやクルムホルンを 兼任することもあり、 マルチプレイヤーとなる必要があります。 こんな話をするのも、 データサイエンスに関して、 2大プログラミング言語である Python と R のどちらを勉強すればいいか、 という質問が非常に多いからです。 プログラミング言語はデータサイエンスの 仕事のあり方に大きく関わってくるだけに、 どちらを選ぼうかと真剣に 悩んでしまうのでしょう。 プログラミング言語には、 データ分析アプリケーションの 機能以上の重要性があります。 データサイエンスの本来の あり方ともいえる 「自分のニーズに合わせて カスタマイズしたツール」を 作り出す能力は、 最重要のスキルといえるからです。 ここで、Python と R について 少し解説しておきましょう。 Python は、データサイエンスと 機械学習の分野で最も 多く使われている言語です。 プログラミング言語として 汎用性があり、 用途を問いません。 データサイエンス以外でも、 Python はさまざまなところで 活用されています。 コードがすっきりしていて、 覚えやすいことも特長です。 このように、Python には 多くのメリットがあります。 もう一方の R は、 データ解析専用に作られた プログラミング言語であるところが Python との大きな違いです。 それでも、科学者や研究者の間で、 R は根強い人気を保っています。 R がベクトル操作を基本としていて、 非標準評価に対応していることや、 Python が初期設定でも メモリ管理や大規模なデータセットへの 対応に優れていることなど、 2つの言語には技術的な相違も いくつかあります。 しかし、どれも不変ではありません。 いずれの言語も、さまざまな用途に 柔軟に対応させることができるのです。 実際、プロのサックス奏者が別の楽器を 何種類も演奏できなければ ステージに立てないのと同じように、 プロのデータサイエンティストも 複数の言語を使いこなせるように なることが必要です。 データサイエンスの仕事に使われる言語には Python と R 以外にも、 SQL、Java(ジャバ)、Julia(ジュリア)、 Scala(スケーラ)、 MATLAB(マトラボ)などがあります。 言語によって使いどころが異なっていて、 重なる部分もありますが、 探究したい問いの内容、 持っているデータの種類、 掘り下げたいレベルなどに応じて、 最適な言語の組み合わせが変わってきます。 ところで、データサイエンスにおいて プログラミング言語が役立つのは、 必要なプログラムを 自作できるからだけではありません。 プログラムの機能を強化する さまざまなパッケージが 利用できるからです。 パッケージをダウンロードすると、 データの処理や分析に役立つ機能を 追加したりプロセスを合理化したりする コードが手に入ります。 プログラミング言語自体より、 パッケージの方が重要であることも 少なくありません。 例えば、ディープラーニング ニューラルネットワークが簡単に扱える TensorFlow(テンソルフロー)は、 Python にも R にも対応しています。 いずれにしても、どのような言語や パッケージを選んで使うかに関わらず、 プログラミング言語の知識や スキルがあれば、 プロジェクトで追究する問いや 集められたデータに応じて 分析や処理を行う作業の自由度や 精度が飛躍的に高まることは 間違いありません。

目次