読書・勉強会

【書評】Python と JavaScriptではじめるデータビジュアライゼーション

本記事はPython と JavaScriptではじめるデータビジュアライゼーションの書評です。

星評価

Pythonコード
Pythonのコードについて学ぶことができるか

機械学習
機械学習について学ぶことができるか

その他学べること
可視化・スクレイピング・JavaScript

どんな人におすすめの一冊?

  1. Pythonを基礎化から学びたい
  2. Webページの仕組みの基礎を学びたい・それをPythonで実装したい
  3. データの分析・可視化について基礎を学びたい
  4. スクレイピングについて知りたい

自分が気に入ったポイント

pandasによる簡易なデータ可視化(249p)

データの可視化について学ぼうとするとmatplotlibやBokehなど色々とありますが、pandasにも可視化の機能が備わっています。それを学んでおくと取得したデータについて知りたいことをすぐに知ることができると思います。

特に特徴量エンジニアリングをするときにも最適な特徴量を選ぶために、pandasに入ったデータを即確認できると、データ分析が捗ります。

Flaskのディレクトリ構成の例が載っている(322p)

Webフレームワークを用いてレスポンシブなWebページを作る過程を一貫して経験できます。「そもそもWebページってどうやって作っているんだろう?」という人は仕組みごと学べます。

私はディレクトリ構成について興味があり、「一番最適な構成はどんなのだろうか?」と悩んでいるところに本書に出会ったので、参考になりました。

Web(JavaScript)へのデータ受け渡しが学べる(427p)

セレクタ、メニューバーを実装して入力を受け取って表示する過程が学べます。なんとなくWebページを作れる、html・cssが書けるという私にとって本当に学びになりました。

この本で学べることまとめ

PythonとJavaScriptの基礎

「JavaScriptの変数名はキャメルケースを使うけれどもPythonはアンダースコア」など言語の違いを踏まえながら基礎について第2章で説明されています。他にも

  • インデントの重要性
  • 名前空間の扱い方のちがい
  • Docstringについて
  • それぞれのデータ処理事例
  • クラスの書き方のちがい
  • 比較演算子のちがい

などについて説明されています。

DBへの接続

Pythonを用いたデータへのアクセス方法について解説されています。ファイルにアクセスする方法から普通のRDBについて、またMongoDBについても解説されています。

Web開発の基本

HTML、CSS、JavaScriptを書いてWebブラウザで表示を見る基礎的なプロセスを経験します。図形を書くだけなのでシステムを作るほど深くは立ち入りません。Chromeデベロッパツールを使って、コードを確認する方法も記載しています。

スクレイピング

Pythonのスクレイピングについて学べます。この章で引っ掛かるようであれば、リクエストについて基礎的な勉強をしておくと、スムーズに学べると思います。

requestsモジュールを使う方法、それに合わせてBeautifulSoupを利用する方法、スパイダーと合わせてScrapyを利用する方法を紹介しています。それらを用いてノーベル賞受賞者のデータを取得するデモを経験できます。

また、TwiiterのAPIを用いてtweetデータを取得する方法についても書かれています。

pandasを利用したデータクリーニング

本書ではnumpyに1章、pandasに1章使って丁寧に基礎を紹介してくれます。特に基礎的な内容に触れてくれるので初めて学ぶ人や利便性を知りたい人におすすめです。

2章かけて基礎を学んだらデータクリーニンクのコードを実際に書きます。ノーベル賞データをJSON形式で取得し、そのデータに対して欠損値処理・重複処理などを経験できます。

matplotlib

Pythonの最もオーソドックスで知らない人はいない可視化ライブラリmatplotlibを解説しています。また、その拡張であるSeabornを紹介しています。

性別と特徴量のデータやあやめの花と特徴量のデータをグラフで可視化し、意味のある分析を経験できます。

pandasによるデータ探索・可視化

取得したデータから特徴を発見しグラフとして可視化する基本的な操作を学べます。

kaggle等でよくdata visualizationと称してデータの形式を確認することがありますが、それと同様の操作を学ぶことができます。

Webページ基盤をFlaskで実装

PythonのWebフレームワークFlaskとhtmlテンプレートエンジンjinja2を使って分析用のWebページを作ること目標とします。html、cssを用意しWebサーバに相当するものを組み立てます。

D3を利用したWebブラウザへのグラフ描画

JavaScriptのデータ可視化ライブラリのD3を利用してWebブラウザでの可視化に取り組みます。どうやってデータを受けわたすか、それをどうやって可視化させるかを身につけることができます。地図上での描画についても触れているため幅広く技術が身につけられると思います。

Webからの入力の実装

プルダウン等で選択した値に応じて、Webページに表示する出力データを変更する仕様です。そのためブラウザからの入力データを受け渡しして結果を返すところまで学べます。

おわりに

Python と JavaScriptではじめるデータビジュアライゼーションはPythonの基礎手に触れながらWeb開発とスクレイピング等まんべんなく学べる一冊でした。

PythonでWebアプリケーションを作っている会社で働くときや自身でWebページを作ってみたいときに助けになるかもしれません。特にページの開発だけでなく、その裏側にあるDBやファイル構成についても学べるところが嬉しいポイントだと感じました。

ABOUT ME
hirayuki
今年で社会人3年目になります。 日々体当たりで仕事を覚えています。 テーマはIT・教育です。 少しでも技術に親しんでもらえるよう、noteで4コマ漫画も書いています。 https://note.mu/hirayuki