Python学習

【Python】おすすめの本を紹介

【Python】おすすめの本を紹介

Pythonの学習におすすめの本を「入門」「応用」「データ分析」といった観点に分けて紹介します。さらに、Python以外にも技術書として役に立つおすすめ書籍についても取り上げます。

各書籍の特徴や、どのような読者に適しているか等について、私の見解を交えながら紹介していきます。Pythonの学習を始める際の参考にしていただければと思います。

Python入門におすすめの本

Pythonの基本となる文法やプログラミングの考え方等を学ぶための入門書籍としておすすめの本を紹介します。個人的なおすすめ順で紹介します。

シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全

Pythonの学習をこれから始める方におすすめの入門書として「シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全」が挙げられます。

著者の酒井潤氏は、シリコンバレーの有名企業Splunkでソフトウェアエンジニアとして現役で活躍しています。

この本は、Udemyのベストセラー講座「現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル」を基に、さらに充実させた内容で発売されました。私自身、Pythonの勉強を始めたのはこのUdemy講座からで、私のコードを書くスタイルは酒井氏の教えが基礎になっています。

書籍は基本的な部分と応用的な部分に分かれており、Pythonにおける重要な内容を十分に学ぶことができます。ただし、Udemy講座には含まれているデータベースやテスト、非同期処理等の一部内容は書籍には含まれていません。そのため、さらに学びを深めたい方は、Udemy講座の受講も検討してみると良いでしょう。

プログラミング学習の最初のステップは、上手に書かれたコードを真似ることから始まります。この点においてシリコンバレーの有名企業で活躍する酒井氏のコードは、非常によいお手本となるでしょう。

本書のレビュー記事はこちら:「【シリコンバレー一流プログラマーが教える Pythonプロフェッショナル大全】Pythonの勉強におすすめの良書

Udemyは様々なタイミングでセールを頻繁に行っています。セール中は通常数万円する講座が書籍1冊分ぐらいの値段まで下がることが多いため、高い時に購入しないようにタイミングを見計らって購入するのがおすすめです。

独学プログラマー Python言語の基本から仕事のやり方まで

Pythonのプログラミング言語としての使用方法だけでなく、プログラマーとしての仕事の全体像やチーム開発について学びたい方には「独学プログラマー Python言語の基本から仕事のやり方まで」をおすすめします。

この書籍では、Pythonの文法の基本から始め、オブジェクト指向プログラミングの概念、コマンドラインインターフェース(CUI)であるBashの使用方法、GitおよびGitHubを用いたバージョン管理など、単にPythonでプログラミングを行うだけでなく、実際の仕事でプログラミングを行う際に役立つ知識を幅広く学ぶことができます。

本書のレビュー記事はこちら:【独学プログラマー Python言語の基本から仕事のやり方まで】Pythonの基本だけでなく幅広くプログラマーの知識を学べる良書

独習Python

サンプルコード、例題、練習問題が豊富に掲載されており、読みやすい入門書としては「独習Python」がおすすめです。

この本は、プログラミングの書籍として有名な独習シリーズのPython版であり、2020年6月に出版されました。バージョンとしては、Python3.8で動作検証された内容となっています。

Pythonプログラミングの基本的な文法を学ぶには、この本がおすすめです。もし、プログラミングの文法だけでなく、プログラマーとしての仕事の全体像やチーム開発なども理解したい場合は、「独学プログラマー Python言語の基本から仕事のやり方まで」をお勧めします。

入門Python3

Python技術の広範囲な範囲をサポートし、情報量が豊富な本としては「入門Python3」をおすすめします。

複素数に関する情報など、他の書籍ではあまり取り上げられないトピックも扱っています。そのため、本書に記載されているキーワードを基にインターネットで調べながら勉強することで幅広い知識を得られると思います。ただし、プログラミング自体が初めての人にはあまりおすすめできません。

これまでにC言語やJavaなどの他の言語での経験があり、プログラミングに関する基本的な知識がある人には、本書が豊富な情報源として非常に役立つでしょう。書籍でカバーされていない部分は自らインターネットで調べることができる方にとっては、辞書的な使用も含めて有益です。

Python応用におすすめの本

Pythonの入門書を読んだ後により深く勉強するための応用編の書籍として読むと良い、おすすめの本を紹介します。

エキスパートPythonプログラミング

Pythonプログラミングの文法を理解し、「パフォーマンスが良く」「安定性が高く」「保守しやすい」ソースコードを書きたいと考え始めたら「エキスパートPythonプログラミング」がおすすめです。

この書籍では、優れたPythonコードを書くためのベストプラクティスが紹介されています。また、並行処理、イベント駆動プログラミング、メタプログラミング、拡張モジュール、テスト駆動開発、パッケージ配布、最適化など、幅広いトピックをカバーしており、読み応えがあります。

書籍内の「本書はだれのために書かれたのか?」というセクションにも記載されていますが、Pythonの上級向けの概念や最新機能を学びたいエキスパートプログラマー向けの内容です。そのため、Python入門者には内容が難しいかもしれませんが、実際の開発現場でPythonを使用したい人だけでなく、趣味でプログラミングを楽しむ人にも非常に興味深い内容です。

本書のレビュー記事はこちら:【エキスパートPythonプログラミング】Pythonを深く極めるための良書

Pythonによるデータ分析におすすめの本

Pythonは、多岐にわたる分野で使用できる言語ですが、機械学習を含むデータ分析のライブラリが豊富なことが特徴です。ここでは、Pythonを用いたデータ分析を学ぶのにおすすめの本を紹介します。

Pythonデータサイエンスハンドブック

データ分析、特に機械学習を行う際には、Pythonでのデータ処理にNumPyやpandas、可視化にMatplotlib、機械学習エンジンにscikit-learn等のライブラリが頻繁に利用されます。

これらのライブラリの基本的な概念や使用方法を学ぶための入門書として、または参照用ハンドブックとして「Pythonデータサイエンスハンドブック」をおすすめします。

NumPyやpandasの詳細な説明があり、Matplotlibの使用方法がサンプルを通じて具体的に紹介されているため、非常に理解しやすいです。ただし、Pythonの文法については扱われていないため、Pythonの基本を全く知らない方は、まず先に紹介した入門書でPythonの基礎を学んでから読むと良いでしょう。

本書のレビュー記事はこちら:【Pythonデータサイエンスハンドブック】Numpy, pandas, matplotlib, scikit-learnの学習に最適な良書

Pythonによるデータ分析入門

NumPy、pandas、Matplotlib、scikit-learnに関する書籍としては、先に紹介した紹介した「Pythonデータサイエンスハンドブック」で広範囲にわたる内容が十分にカバーされています。

pandasについてより詳しく学びたいという方には「Pythonによるデータ分析入門」がおすすめできます。ファイル入出力等、データサイエンスハンドブックよりもより詳しく説明されています。

Pythonによるディープラーニング

ディープラーニングを実装する際には、ディープラーニングのフレームワークの使い方を学ぶことが効果的です。ディープラーニングフレームワークとして、GoogleのTensorFlowやFacebook(現在はMeta)のPyTorchが特に有名です。

TensorFlow/Kerasに関する書籍としては「Pythonによるディープラーニング」がおすすめです。

この書籍は、中級から上級者向けの内容を扱っていますが、TensorFlow/Kerasにおける実装のワークフローからSequential、Functional、Subclassingといった各種APIの使い方に至るまで、詳細に記載されており、TensorFlow/Kerasの本質を理解するのに非常に役立ちます。

さらにCNN(畳み込みニューラルネットワーク)、RNN(再帰的ニューラルネットワーク)、Transformer、GAN(敵対的生成ネットワーク)などの高度なトピックも取り上げられており、技術の理解を深めることができます。E資格(JDLA Deep Learning for ENGINEER)等の資格取得をしたい人の参考書籍としても役立ちます。

本書のレビュー記事はこちら:【Pythonによるディープラーニング】TensorFlow/Kerasによるディープラーニング実装力を向上させる

E資格取得時の記事はこちら:アイデミー(Aidemy)のE資格対策講座を受けてE資格(JDLA Deep Learning for ENGINEER)を取得

scikit-learn、Keras、TensorFlowによる実践機械学習

TensorFlow/Kerasを用いたディープラーニングの学習については、先に紹介した「Pythonによるディープラーニング」を特におすすめします。しかし、scikit-learnやTensorFlow/Kerasを使った機械学習の学習には、「scikit-learn、Keras、TensorFlowによる実践機械学習」もおすすめです。

ゼロから作るDeep Learningシリーズ

Pythonに興味を持つ人の中には、ディープラーニングのような近年注目されている分野で活用されているからという理由で学び始める人も少なくないでしょう。

ディープラーニングに関する様々なフレームワーク(TensorFlow/Keras、PyTorch、Chainerなど)が存在しますが、これらを単に使用するだけでなく、その理論的な背景を深く理解したいと考える人もいます。

そんな方におすすめなのが「ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装」です。この書籍は、ディープラーニングの基礎となるニューラルネットワークを、最も基本的なパーセプトロンから段階的に解説しています。実際にコードを書きながら理解を深めていくスタイルが特徴的です。

ゼロから作るDeep Learningシリーズは、「ゼロから作るDeep Learning 2―自然言語処理 」「ゼロから作るDeep Learning 3 ―フレームワーク編」「ゼロから作るDeep Learning 4―強化学習編」と続きます。

第2巻では自然言語に特化し、第3巻ではディープラーニングのフレームワークで使われる技術の基礎から自分で最小限のフレームワークを実装することで理解を深めます。第4巻では強化学習を扱います。第1巻でディープラーニングの基礎を学んだ後に、興味や必要に応じて第2巻、第3巻、第4巻と進めることがおすすめです。

また、E資格(JDLA Deep Learning for ENGINEER)のコード穴埋め問題に似た問題が多く取り上げられているため、E資格取得を目指す方にも参考書として推奨されます。

Python公式ドキュメント

Pythonの書籍について紹介してきましたが、最新のPythonに関する情報を取得するための最適なドキュメントはやはり公式ドキュメントです。Python3の最新ドキュメントについては「Python3 ドキュメント」を参照するようにしてください。

リンク先では、各バージョンごとのリンクもあるため、お使いのバージョンに合わせて参照するようにしてください。なお、開発中(in development)のバージョンについても情報があります。

特に、Python標準ライブラリのページには、各種標準ライブラリーの使い方が記載されています。標準ライブラリーの使い方に困ったらまず一度ドキュメントを見てみるようにするのが良いでしょう。

その他おすすめの本

これまでPythonに関連する書籍を紹介してきましたが、プログラミングや開発を学ぶにあたり、他にも参考になる書籍は多くあります。ここでは、関連知識を深めるためにおすすめの本を紹介します。興味があれば、ぜひ読んでみてください。

オブジェクト指向でなぜつくるのか

Pythonを深く理解するためには、オブジェクト指向の学習が非常に有効です。オブジェクト指向の基本を学びたい方に「オブジェクト指向でなぜ作るのか」をおすすめします。

Pythonでは、intstrなどを無意識に使用していますが、これらもクラスとして定義されています。使用する際にオブジェクト化し、クラス内に定義されたメソッドを使ってプログラミングできているのは、オブジェクト指向の考え方が組み込まれているためです。

オブジェクト指向は、初心者にとって理解しづらいとよく言われます。本書では、オブジェクト指向がなぜ理解しづらいのか、その点も含めて詳しく説明されています。

私自身も新入社員などにオブジェクト指向について説明する際、誤解を招いていないか、また、うまく伝えられているか不安になることがよくあります。オブジェクト指向を既に理解していると思っている方も、一度読むことで自分の知識を再確認する良い機会になると思います。

達人に学ぶDB設計 徹底指南書/達人に学ぶSQL 徹底指南書

Pythonを学んでいる方の中には、データ分析に興味を持っている方も多いでしょう。企業でのデータ分析対象システムの多くはリレーショナルデータベース(RDB)で管理されています。

データサイエンティストなどの職種では、機械学習や統計の知識があればPythonなどのプログラミング言語を使用できるだけで十分と考えるかもしれませんが、DB設計やSQLの知識はデータエンジニアに任せるだけでは不十分です。分析を主な仕事としていても、データエンジニアと効果的にコミュニケーションするためには、DB設計の基礎を理解しておくことが非常に有益です。

この分野で非常に有益な知識を得られるおすすめ書籍として「達人に学ぶDB設計徹底指南書」と「達人に学ぶSQL徹底指南書」があります。

「達人に学ぶDB設計 徹底指南書」では、正規化やER図の説明に加え、良くないDB設計例や注意が必要な設計例(グレーノウハウ)について例を交えて紹介されています。これらの知見は、私が関わったシステム設計での実例にも当てはまるものがありました。非常に興味深い内容ですので、ぜひ一読をおすすめします。

「達人に学ぶSQL 徹底指南書」では、基本的に中級者向けのSQLプログラミング入門として位置づけられています。SQLを半年から1年程度扱ったことがある方を対象としていますが、データ抽出を効率的に行うための正しい書き方や考え方を理解するうえで役立つ知見を得られるでしょう。

「達人に学ぶDB設計 徹底指南書」参考にDB設計時のポイントの覚え書きとしてまとめた記事はこちら:DB設計時のポイント ~達人に学ぶDB設計 徹底指南書を参考に~

GitHub実践入門

プログラムのソースコード管理は、特に企業などの開発現場で非常に重要です。世界的に広く使われているGitHubについて学ぶことは大変有益です。「GitHub実践入門」は、GitHubの基本を学ぶのにおすすめの書籍です。GitHubは常に進化しているため、UIなどが変化しているということを理解したうえで読む必要があります。

GitとGitHubの違いがはっきりしない人もいるかもしれません。Gitはソースコードなどのデータをリポジトリ(データの保管場所)に保存し、管理するためのソフトウェアです。一方、GitHubはそのGitリポジトリをインターネット上で管理するためのサービスです。GitHubには、Pull RequestやIssueなど、インターネット上で多くの人が共同でコード開発を行うための様々な機能があります。

企業によってはSubversionなどの他のバージョン管理システムを使用していることもありますが、特に理由がなければGitやGitHubから学ぶことをおすすめします。GitやGitHubの基本概念を理解していれば、Subversionなどの他のシステムでも十分対応できます。