Pythonと本と子供と雑談と

いつからはじめても遅くない

PythonユーザのためのJupyter実践入門(改訂版)を読みました

Image from Gyazo

はんなりPythonにドリラーさんがいらっしゃり、「参加者の中から抽選で1名にプレゼント!」とおっしゃったので、運営なのに空気読まずに応募したら当たっていただきました。numpyが選んだんだし仕方がない。運命です。

本をもらっての第一印象は「重厚」です。400ページ超えという物理面の迫力もありますが、1章のアナコンダのインスールと仮想環境の作成とか、matplotlibとseabornで250ページとか、もうグラフ書くなら黙って買いましょって気になります。

1版もうちにあります。その1版ですが、最近うちの奥様がなぜか「Python勉強する」とか言って、手に取っていました。で、「ボカ―が動かない」とか言っていたので「ボケな」とか訂正した覚えがあったのですが、そのBokehは今回なくなりMatplotlibとSeabornの2つになっていました。 昨今可視化ツールはできることが増えてますからね。ツールを多くするより、より詳しくという感じでしょうか。てか、bokeh入れたら500ページ超えますね。

プログラミングの勉強の仕方

本の詳細に触れる前に、プログラミングの勉強の仕方というものに触れてみます。プログラミングを勉強したことのない人にとって、これは結構ややこしい問題だと思います。

プログラミングの勉強は次の三段階に分けられると思います。

  1. プログラミング言語自体の勉強
  2. やりたいことを実現するためのツールの勉強
  3. プログラミング自体の勉強

たとえば「Pythonを使ってデータ分析をしたい」という方がいたとします。そうして、wristさんが作ったscikit learnのイントロのページを見たとしましょう。そうすると、感想は(コード部分の)fromとかimportとかなにやってんでしょうね?というものになると思います。この辺りはPythonの基本的な使い方なので、Python自体の使い方を勉強しないといけません。

github.com

一方で、Pythonを勉強したから、「もうデータ分析できるぜ!!!」ってなるかというと、こういうツールの使い方が分かってないと何もできません。ツール無しでも自分で指揮作れるし任せとかんかい!って実力派も、その式をどうやってPythonで書くかはまぁ勉強しないといけなくなると思います。2と1は順番が逆でも良いかもしれません。やりたいことがあって、やりたいことをやってみて、分からない部分をあとから補う感じの学び方もよさそうです。

そして、その使い方が分かってくると、今度はプログラミングの設計とかその辺りが問題になってきます。そのごもまた、どんどんやることが増えていくのですが、あまりにもやることにまみれた世界をお見せするのは残酷なので止めておきましょう。

この本の位置づけ

もうお分かりかと思いますが、当書「PythonユーザのためのJupyter実践入門」は、先ほど見た2の段階の人向けの本です。具体的にはデータ分析はじめてみたいという人にお勧めです。

概要

PythonにはJupyter(Notebook or Lab)というウェブブラウザでプログラムを実行する環境があります。これがあったおかげで私なんかは、プログラミングを学べたと思っています。初心者にとってこのツールがあるのとないのとでは、スタートにかなり大きい差が生まれると思います。この本ではこのJupyterのインストールから、使い方が1,2章で解説されます。AnacondaというPythonのパッケージがあるのですが、それの使い方があるのが地味なんですが、非常にありがたいところだと思います。勉強会なんかではよく言われているんですが、プログラミングすると一番難しいのにやらないといけないところが、「ローカルの環境作成」なんですね。難しいので、ググって探すんですが記事が多くて、しかもぶつ切りでよう分からんってなって適当に動かし、そのうち動かなくなって困るという・・・。

3章ではPandasの使い方が解説されます。Pandasはデータの読み込みとか整形とかに使われる重要なライブラリでして、これを分からないとあとの可視化もわからないし、これを使いこなせるデータの集計やらなんやらがうまくでき可視化との相乗効果で、ものすごくデータに関して理解が深まるんじゃないかなぁと思っています。なので、ここはしっかり読んだ方が良いところですね。

読んだ感じ、私の用語使いのミスとかなんやらが発見されてつらさしかありませんでしたが、もう少し時間をおいて、いま一度読み返したいなぁと思いました。あと、WEB+DBの記事を書いていて「Series」邪魔やねん・・・ってなったのですが、どうなのでしょうか?Panelはなきものとされましたが、Seriesがあるってことは何か重要なんだろうなと思わされますが、DataFrameと挙動がちょっと違うため解説が必要っていう・・。

4,5,6,7章はmatplotlibとSeabornの使い方でした。matplotlibはPythonでグラフ書くならまずこれ!!って感じのみんなが使っているパッケージです。 感想は下みたいにちょっとマニアックですが、適当に簡単に書くのではなく、しっかりとコードを分かりやすく書こうというものでした。自分がmatplotlibを使う際は、大きめのデータ(大きめデータ警察が来そうですが。。)を可視化して、雑に全部見てみるみたいなところなので、なんかコードも雑にグラフが出れば良しという感じでした。一方で、matplotlibの印象として何書いてるかよくわからんってのがあったのですが、それは自分のせいだったのねと思わされました。この本ではMATLAB-styleとOOP-styleに関して、ノートと3ページほどの記事で触れられていたのですが、これが知れたのが一番の収穫でした。

この考え方を知っていると、Plotlyなどほかのパッケージでもグラフを作るのが簡単になると思います。

あと、グラフの種類のカバーや、細部の作り方などここまで書いているのか・・・と感動しました。いや、すごい。

まとめ

Pythonを使ってデータ分析をしてみたい」という方にはイチオシの一冊だと思います。結構いきなり機械学習本からって方も多くみられるようですが、結局Pandas分からんみたいなところでつまずいたり、途中の可視化なんじゃこれってなる方が多いように見受けられるので、Pythonの本+この本+機械学習本みたいな感じで買うと、ぐるぐると参照しながら勉強できて良いのではないでしょうか?

データ分析の最初の本としてこの本を買うとして、Pythonの本は何が良いでしょう?

私はみんなのPythonオライリーのPython3辺りを写経しまくっていました。ひとつ言えるのは、すぐに理解できるものでもないので、まずは1冊入門向けのものを気軽に買って写経してみるというのが良いと思います。今見ているとPythonフリガナプログラミングなんかはkindle unlimitedで読めるので、よいかもですね。あと辻先生の「Pythonスタートブック」もよく聞きますね。

まぁ、最初に1万円分くらい本を買って気長にやってみるというのが良いのではないかと思います。1万円で今後2,3年有効なスキルが手に入る。なんてお安い。