Lean Baseball

No Engineering, No Baseball.

「PythonユーザーのためのJupyter実践入門」はPythonとデータサイエンスをする人の入り口だ

f:id:shinyorke:20200823153002j:plain
待望のJupyter本, 改訂版来ました!

Pythonでデータサイエンスとエンジニアリングするマンとしてかなり待望していた「PythonユーザのためのJupyter[実践]入門 改訂版」がついに来ました.*1

改訂版 Pythonユーザのための Jupyter[実践]入門

改訂版 Pythonユーザのための Jupyter[実践]入門

ひと足先に読ませていただいたので,

  • PythonユーザのためのJupyter[実践]入門 改訂版」はPythonでデータサイエンスする人にとっての入り口でおすすめの本である
  • Pythonでデータサイエンスをやるなら, 「Pythonと慣れ親しむ」「機械学習に慣れる」「実践する」の目的に合わせて学習・実践したり本を読んだほうがいいよ

という話をこのエントリーではまとめていこうと思います.

なおこのエントリーは,

  • Pythonを使ってデータサイエンス(機械学習・データ分析など)をしている方
  • 特に, データサイエンスを実務や学業で活かしたい方(仕事や研究など)
  • PythonユーザのためのJupyter[実践]入門 改訂版がどんな本か気になってる方

を対象にしています.

おしながき

PythonユーザのためのJupyter[実践]入門

(このエントリーが出る翌日となる)8/24に発売となります(一部の本屋さんには置いているかも).

改訂版 Pythonユーザのための Jupyter[実践]入門

改訂版 Pythonユーザのための Jupyter[実践]入門

初版が出たのが2017年で, このブログでも「入門pandas - 明日からはじめるデータ分析のきほん」などで引用させていただいています.

shinyorke.hatenablog.com

どんな本なのか?という紹介と, (初版から読んでる人向けですが)改訂版との違いについてちょこっと書きます.

どんな本なのか

一言で言うと,

JupyterLab, pandas, Matplotlib(含むseaborn)を中心としたデータ分析と可視化を基本から応用までいい感じに学べる書籍

です.

仕事でも学業でも, 何かしらのデータサイエンスをPythonでやるときに,

  • Anacondaを入れて
  • JupyterLabを立ち上げて
  • pandasやmatplotlibを使ってデータを分析したり可視化したり

すると思いますが, これに関する初歩的な所から応用テクまでまんべんなく載ってるのがこの本になります.

個人的には, 仕事やプライベートでデータサイエンスの話題になって教えて欲しい・おすすめ本は?と言われたときに真っ先にこの本の名前を出すぐらい, 網羅性があったりガイドブック的に使いやすくておすすめしています.

なお, 載っていないこともあって,

  • scikit-learn等を使った機械学習の例
  • アルゴリズムの解説
  • ホントの初歩的なPythonの基本

などは載っていないのでこれは他の本などで補う必要があります(このエントリーの後半に扱うネタがそれです).

個人的な3つの推しポイント

この書籍が気になる方に特に推したいポイントですが,

  • インストールから実践まで必要なことがまんべんなく載っている
  • サンプルコード・データが揃っていて写経がしやすい(かも)
  • Google Colaboratoryを使った分析にも触れている&入門として最適

なところです.

Anacondaインストールから実践的な可視化まで触れている

本の目次をちょっとサマリーすると,

  • JupyterLabの導入(Anacondaインストール・condaコマンドの使い方)
  • JupyterLabを使う(コード実行・マジックファンクション等の解説・画面インターフェースの説明)
  • pandasを使ったデータ処理・分析
  • Matplotlib/sebornでデータの可視化
  • Colaboratoryを使った「環境を作らない」分析

と, 初心者から上級者までググったり調べそうなことを網羅しています.*2

これは自分も使い方を忘れたりとかするのでホント感謝って感じで, 「ひとまずJupyter実践入門開けば載ってるやろ!」という安心感があって最高です.

執筆者の皆さんがその道のプロなので触れているところも過不足無く良い感じです.

サンプルコードとデータが良い

全編にわたり, 日本のアニメーションのデータを元に分析したり可視化したり, と一貫性がある構成になっており, いざ写経して覚えよう!というときにやりやすそうな構成になってて良いなと思いました(私は写経してないので感想ですが).

データ分析に限らず, プログラミングの本は,

  • 読む人が等しく同じ環境を作れて
  • サンプルコードや本文中のコードが真似したら再現する

のはすごく大事なのですが, そこの基本が守られていそうな感じがして安心してオススメできます.

特に初心者の方は写経したりデータを自分が好きなデータに変えて真似してやるとかしたら学習に良さそうな気がします.

Google Colaboratory入門なオマケが最高

これは初版に無く, 改訂版からのアップデートでした.*3

colab.research.google.com

「ブラウザを立てたらすぐJupyter使える」「一定条件下ならGPUが無料で使える」でおなじみのGoogle Colaboratoryの章が新たに加わっていいました.

手順がしっかりあるとはいえ, AnacondaやピュアなPythonを使ったデータ分析環境つくりとメンテナンスは正直面倒な作業で, ちょっとした分析ならColaboratoryで済ませたほうがいい, というのが最近のこの界隈のトレンド(だと私は思っている*4)だったりしますが, そこに追随してしっかりColaboratory入門が載ってるのがいい感じだと思いました.

[補足]初版との違い&敢えてのツッコミ

これは初版を読んでる方&中上級者向けの話ですが, 初版との違いは

  • 主体がJupyter notebookからJupyterLabに変更. これはJupyterLabが正式版かつ今後のスタンダードになるため.
  • 初版では可視化をMatplotlibとbokehでやっていたが, 改訂版はbokehがなくなりMatplotlibとseabornの組み合わせに.
  • ipywidget, 別言語のカーネル(Ruby, R)を動かす章がゴソッと削除

といった所でした.

個人的にはRubyやRを動かす話は残しても良かったんじゃないかなと思っています...そこが敢えてのツッコミですね.*5

Python×データサイエンスを効率よく学んで実践するロードマップ

この先はちょっとオマケのコンテンツです.

PythonユーザのためのJupyter[実践]入門 改訂版」の感想をまとめていて思ったのですが,

  • Jupyter実践入門はデータに関するエンジニアリングと可視化まで頑張れる
  • が, 機械学習とかデータサイエンスって範囲じゃないよな🤔
  • 「Pythonに慣れる」「機械学習に慣れる」「仕事・趣味で実践する」って整理したらいい感じになりそう?

と思い立ったのでこんな絵を描いてみました.

f:id:shinyorke:20200823152201p:plain
Pythonを用いたデータサイエンスを使いこなすまでロードマップ

Jupyter実践入門以外に何を学べば?読めばいいの??的な方の参考になれば幸いです.

Phase1「Pythonと友達になろう」

ここは書いてあるとおりで,

  • Pythonの基礎を覚える・固める. ちょっとした記法やエラーの読み方・解決方法を自走してやれるようになる
  • Pythonなデータサイエンスでよく使うJupyterやPandasを覚える

のが最初かなと思っています. これは基本的に独学での自学自習やたまに勉強会参加でイケると思います.

Pythonの基礎を(心持ちやスタンス・姿勢含めて)覚えるならやっぱ独学プログラマーかなと.

実践的に書く・仕事につかう・より深く知る意味ではPython実践入門もマストアイテムです.

そしてJupyterやPandasについては言うまでもなく「PythonユーザーのためのJupyter[実践]入門」かなと.

改訂版 Pythonユーザのための Jupyter[実践]入門

改訂版 Pythonユーザのための Jupyter[実践]入門

個人的にはこれらがちゃんと抑えられればPython関係は困らない気がします.

Phase2「機械学習と友達になろう」

機械学習やアルゴリズム周り, これはたくさん本やサイトがありますがPythonというワードで限ると,

  • アルゴリズムや統計, 機械学習に必要なことをPythonコードであるようなモノで覚える
  • 実装や設計的に事実上のデファクトスタンダードであるscikit-learnを意のままに使えるようになる
  • 練習・実習問題チックな100本ノックをやる

がベストかなと思っています. 自分もそんなノリでやりました.

Python×scikit-learnでぜひ抑えてほしいのが「機械学習図鑑」でこれはホントおすすめ.

「PythonユーザーのためのJupyter[実践]入門」で不足する文はこれで十分抑えられるかと思います.

そんなJupyter実践入門より一歩踏み込んだ内容でPython×データサイエンスに触れているのがオライリーの「Pythonによるデータ分析入門」かなと.

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

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

  • 作者:Wes McKinney
  • 発売日: 2018/07/26
  • メディア: 単行本(ソフトカバー)

ちょっと歯ごたえありますが, 「PythonユーザーのためのJupyter[実践]入門」「機械学習図鑑」の後にやるといい感じだと思います.*6

そして仕事や趣味での実践に備えて100本ノックするとより良い感じかなと.

手を動かして覚える系だとPython実践データ分析100本ノックは良著だと思います.

Phase3「ひたすら実践しよう」

最後は実践フェーズでこれはシンプルに「ひたすら課題を解き続ける」事に専念かなと.

書籍レベルですと,

  • 自分がやりたいデータ分析に近しいテーマの実践本・事例を追う
  • 仕事で機械学習をやるときの定石的なのを抑える
  • 特徴量エンジニアリングをより深く理解する

ところかなと思っています.

色んな分野・業界のデータサイエンス本がありますが, 最近出た&このブログでも紹介した「Pythonによる医療データ分析入門」はまさにこの好例かなと.

どんな本かはこのブログの過去エントリーにもありますのでご参考までに.

shinyorke.hatenablog.com

また, 仕事での定石だったり「機械学習プロジェクトで抑えるべきポイント・要点」という点ではやはり「仕事ではじめる機械学習」がマストアイテムです!

仕事ではじめる機械学習

仕事ではじめる機械学習

「Pythonによる医療データ分析入門」「仕事ではじめる機械学習」両書籍でも言及されている&私自身も大切にしているのですが, データ分析の対象となる事象・モノに対するドメイン知識と統計・機械学習をいい感じにあわせてやるためには「特徴量エンジニアリング」というのがめちゃくちゃ重要になります.

「機械学習のための特徴量エンジニアリング」がその大切さとテクニックをいい感じに紹介しているので実務をする方はぜひ読んで欲しい一冊です!

結び - データサイエンスやるなら実践が一番やで!

というわけで, 「PythonユーザのためのJupyter[実践]入門 改訂版」の紹介と同時に「Pythonを使っていい感じにデータサイエンスやるまでの道のり」をロードマップ付きで紹介しました.

色々書きましたが要約すると,

独学でいいから色々学んでガッツリ実践しようぜ!

というのが最も近道かつシンプルな答えとなります.

Python×データサイエンスの仕組みのエコシステムは色々揃いましたが最後は実践ありきです.

データサイエンス, 特にデータの活用はできるようになるとホント楽しいし価値あるのいい感じにやっていきましょう!

*1:執筆者の皆様および技術評論社さまのご厚意により一冊頂きました. 誠にありがとうございます!

*2:初心者は言わずもがなですが, 中〜上級者だって使い方調べたり, 忘れてたりするのを思い出したりするのでユースケースは違えど解決手段が同じだったりします.

*3:より厳密に言うと, 初版にもCloud Datalabの話があったりしましたが, より一般的かつ使いやすいColaboratoryに変わったといったところかもです.

*4:余談ですが, 私が所属するJX通信社のデータ分析チームでは学生インターンおよび分析初心者の方にはColaboratoryの利用を強く推奨しています&書籍には載ってませんがBigQueryとの連携が非常に楽なのでそういった意味でもおすすめです.

*5:Rubyはともかく, Rは「R Studio入れるほどじゃないけどR使いたい」的なユースケースでJupyterLab使うの最高に良いのであってもいいんじゃないかなって.

*6:正直オライリー本のPythonデータサイエンス書籍はたくさんあります, テーマおよびやりたいことを意識した上で選ぶのがベストかと思います. 私は興味あるので片っ端から読んでいますが苦笑