読者です 読者をやめる 読者になる 読者になる

StatsBeginner: 初学者の統計学習ノート

初学者が統計学、機械学習、R、Pythonの勉強の過程をメモっていくノート。

Pythonの教科書を2冊買った

Pythonを始めてみようかと

 Pythonの教科書を2冊買いました。
 私はプログラミングはまったくの素人ですし、これから頑張ろうと意気込んでいるわけでもないのですが、Rをいじっていると初心者レベルではあってもプログラミングっぽいものに少し関心が出てきて、Rみたいな領域特化型の言語だけではなく汎用性のある言語も1つ勉強したいなと思い始めました。なんか、視野を広げるというか。
 んで、どうせならデータ解析で最近よく使われているというPythonだろうということで、教科書を2冊注文しました。プログラミング言語のなかでは、初心者にもやさしいらしいし。


Pythonスタートブック

Pythonスタートブック

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理


 前者の『Pythonスタートブック』は、プログラミングというものを全くしらない人向けに書かれた超入門書なので、私にはありがたいです。とりあえず3章ぐらいまでざっと読みましたが、一応Rを少しいじっているので、全く知識がないわけでもなく、本書の前半は手を動かす必要もなく読み飛ばす感じですね。「データ型」とか「関数」とか言われても意味が分からないわけではなく、「あぁここはRとこう違うのね」というような理解の仕方ができます。これはすぐ読み終わりそうです。


 後者のオライリーの教科書は、Pandas、NumPyなどPythonでの科学計算に使われるライブラリのさまざまな機能を、分析事例をなぞりながら解説するという感じです。1章「はじめに」だけ読みました。著者によるとPythonは、

  • 研究者ユーザのコミュニティが発達しているので、学術方面の計算に便利なライブラリが異様に充実している
  • スクリプト言語だといって馬鹿にするのは間違っており、ミッションクリティカルな本格的アプリケーション開発に使われる例もあるしこれからも増えるだろう*1
  • 汚くてもとりあえず動くコードを素早く書くことができる。処理にかかる時間の差異よりも、プログラマがコードを考えるのにかかる時間の差異のほうが、時間の希少価値を考えると重要なので、早く書けることは望ましい
  • プログラムのうち、処理が集中するのは一部だけなので、逆にそういうボトルネックになりそうなところだけC言語など別の言語で書いて埋め込んでおくという手段がよくとられる
  • C言語を始めとする他の言語とのインターフェイスに優れているので、そういうことがやりやすい
  • したがって、Pythonマンセー

 とうことらしいです。まぁいきなり言われても私にはよく分かりませんが、なんとなくイメージはできました。
 こっちの教科書は逆にまったくプログラミング初心者向けではなく、私には高度過ぎる感じなので、データ処理の基本操作みたいなところから、関心ある部分を拾って地道に手を動かしながらやっていくという感じかなぁ。


 まだよく分かっていないのですが、Pythonがデータ分析でよく使われているというのは、Pythonがデータ分析に向いているというより、研究者を中心としてデータ分析のライブラリを作ったり使ったりするコミュニティがたまたま充実しているということなんでしょうかね。あと、データ分析は、対話的にどんどん実行して結果がわかればそれでいいやという場面も多いので、いわゆるインタラクティブシェルってやつを使う方式が向いてるということなんでしょうか。


 とりあえず私にとってはRの勉強のほうが優先度が高いので、合間の息抜きとして勉強していきたいと思います。
 まぁ、勉強するとかしないとかそんな話はどうでもいいから、とりあえずコードを書いてみそということですね。はい。
 
 

*1:ミッションクリティカルというのが何のどこまでを指すのかよく分かってませんが、Googleが社内で公式に利用しているのはC++、Java、Pythonの3つであるとか、FacebookやDropboxがPythonでつくられているというのは聞いたことあります