Pythonの本
私もプログラミング言語であるpythonを使用しています。使用目的のほとんどがCSVの整理とGISデータの加工です。AIとかアプリの開発とかをする予定はありません。にわかに始めた初心者です。
なぜ始めたかというと、前述の通りCSVファイルのデータ加工です。最近はオープンデータとして色々なデータ、主にCSVファイルを使用することが多いのですが、Excelで読み込めないような容量のものがあり、これを扱うために始めました。
また、GISは以前から仕事で使用していたのですが、Pythonを使用してデータの加工ができるので、主にデータの結合などの目的で使用しています。
VBAは少々触れたことがあったのですが、こちらもそれほどすごいことはやっていませんので、全くのプログラム未経験者です。「少しずつ勉強してCSVの加工くらいまで達成したぞ」レベルまでの本を紹介します。
①翔泳社『Pythonの絵本 Pythonを楽しく学ぶ9つの扉』
この本を最初に買いました。書店で数々の本を見ていて一番わかりやすかったからです。名称の通り「絵本」ですので、ほぼ全てのページにイラストが描いてあり、ひとつの話題が見開きで終わるようになっています。
専門的な話になりますが、変数の説明として「文字や数値を入れる箱」と説明したうえで、その使い方や種類が一貫して「箱と紙のイラスト」により行われます。見ているだけで仕組みを勉強できるので、主に通勤中に読んでいました。
基本的には仕組みを解説する絵本なので、この本だけでなにかできるというわけではありません。(テキストファイルを読み込んだりすることはできますが。)あくまでも始めるための基礎を養うために活用した方がよいでしょう。また、私の場合、ExcelVBAを使ったことがあるので、それとの違いを知ることにも役に立ちました。
②技術評論社『PythonユーザーのためのJupyter[実践]入門』
今年、改訂版が出ていました。
急に難易度があがるのですが、こちらも比較的早めに買いました。そもそも、先の絵本だけではどうにもなりません。(極めれば色々とできるのでしょうが…)目的がデータの処理だったので、ちょっと難しかったのですがこの本を利用しました。
まず、はじめにJupyterというものを知りました。すごく簡単にいうと、「インターネットエクスプローラーやグーグルクロームなどにプログラムを入力させるノートを作って、そこにプログラムを入力し、実行するもの」です。プログラミングってDOSプロンプト(黒い画面)に文字を入力するものだと思っていました。しかし、これを使うと、(あの融通の利かなさそうな?)黒い画面と格闘せずプログラミングができるのです。
こちらの本ではそのJupyterの導入から使い方を勉強した上で、pandasというパッケージ(もっと簡単にいうとアプリみたいなものです。)を使用してデータを処理することを学びます。この部分が必要としていた知識だったのですが、初級から中級まで十分学ぶことができました。
後半はMatplotlibというパッケージでグラフの作り方を学びます。この辺は目的毎に淡々とまとまっていますので、技術評論社の本らしい(?)記述となっています。逆引きするときに助かります。
最後の方にBokehというMatplotlibとは違うパッケージでグラフ作りを行うのですが、私は使用しなかったのでなんとも言えません。グラフ作成の話が重複するので、別の内容を紹介して欲しかったなあとも思いました。
私も最初は大変だったのですが、だんだん分かってくるとExcelより便利だと感じるようになってきました。一方で、グラフの作成は時間もかかり、修正も面倒なので、Excelでは表現できないグラフを作るときに活用すればよいと思います。
※2020年8月24日に改訂版がでており、若干の内容変更があったようです。目次を拝見すると、JupyterNoteBookからJupyterLabに変更したようです。後半もBokehでなく、Seabornになっているようです。
③講談社『入門者のPython プログラムを作りながら基本を学ぶ』
講談社のブルーバックスシリーズ(新書)です。私は科学とか無縁の生活でしたので、ブルーバックスシリーズ自体初めて買いました。
新書スタイルという点からも、私にとっては今まで体験したことがないタイプのものでした。3つの事例(①デジカメの写真ファイル整理、②スクレイピング、③データの分析)のみを、じわじわとステップアップしながら学びます。
筆者も初心者のために、遠回りしながら教えるというスタンスで、マスターしたら、そこを効率的なやり方にプログラムに修正するというやり方になっています。①のデジカメのファイルを整理する項目で半分以上を占めています。
初心者が学ぶ上でとても役立つ本なのですが、私の使い方としては出力するファイルやフォルダの整理方法の参考書として使用しています。前述の通り、CSVファイルの加工などを行い、そのファイルを出力するのですが、その際にこの本の内容が役に立っています。
なお、こちらはJupyterではなく、Spyderというものを使います。pythonのコードは変わらないので、自身の環境に置き換えて考えればJupyterでも問題ないと思います。
まとめ
Pythonを学ぶ上で、ネット上にある大量のサイトも参照しています。しかし、本ならではの表現があるとおもいます。今回はその中から、初心者として納得できた本を紹介しました。
話はそれるのですが、地方に引っ越してしまい、書店で本を見ること(立ち読み)ができないことが残念でなりません。なので、昔は登録しなかったようなメールマガジンとか登録するようになりました。それくらいしか新刊情報がないので。