Pythonライブラリの使い方
手軽に応用プログラミング
著者 | 松田 晃一 |
---|---|
判型 | B5変型、424頁 |
ISBN | 978-4-87783-456-2 |
価格 | 本体3,400円 |
発行日 | 2019年 8月10日(初版第1刷) |
備考 | ダウンロードサービス:学習に使えるサンプルファイル |
本書の記載内容について訂正があります。こちらを参照してください。
本書について
Googleの機械学習(人工知能)で使用されているプログラミング言語として有名になったPythonは、その簡潔なコーディングや高い機能性などから、今日、最も注目されている言語の1つであり、初心者向きとも言われています。
「初心者向き」という形容は、個人的には疑問に思う点もありますが、近年プログラミング言語の善し悪しは、言語そのものの仕様ではなく、言語に関するWebページなどの情報量、その言語から使用できるライブラリの豊富さ、それを支えるフォーラムなどコミュニティを含めた「エコシステム」(生態系)の方が重要になってきています。Pythonは、前述の機械学習以外にも、画像処理、Webスクレイピングや、自然言語処理、科学技術計算、ロボットのアプリケーション開発(ROS)、IoTや組み込みシステムなどさまざまな分野で利用されてきており、それを支えるライブラリやコミュニティの豊富さなどからさまざまなシステムやアプリケーションが開発できるようになってきています。また、既存のソフトウェアへの組み込みとしては、統合3DCGソフト(Maya、Blender、LightWave等)でデファクトスタンダードのスクリプト言語にもなっています。
本書ではそのようなPythonのライブラリの中から比較的手軽に利用でき、知っておくと便利そうなものを選び、サンプルプログラムとともに説明したものです。サンプルプログラムは200個以上あり、ダウンロードサービスからすべて取得できます。全部で12種類のライブラリを扱っており、第1章はそのライブラリを用いたサンプルプログラムを読むのに必要なPythonの知識を概説しています。それ以降は各ライブラリの説明になりますが、それぞれのライブラリをなるべく等しく扱うために各章を20~40ページとしてあります。基本的にはどの章から読まれても大丈夫だと思いますが、第10~13章は互いに関連するため続けて読まれることをお勧めします。また、本書を大学の講義などで使う場合は長い章を2回に分けるなどすると14~15回とすることができると思いますし、いくつかの章を飛ばしてもよいでしょう。
目次
- 前書き
- 0.1 新しそうで古い言語Python
- 0.2 Pythonのインストールとプログラムの実行
- 0.3 インタラクティブシェル
- 0.4 インタラクティブシェルでの実行
- 0.5 プログラムの作成、保存、実行
- 0.6 まとめ
- 第1章 Python概説
- 1.1 変数とデータ
- 1.2 変数
- 1.3 文字列
- 1.4 リスト
- 1.5 タプル
- 1.6 辞書
- 1.7 条件分岐(if文)
- 1.8 繰り返し(while文)
- 1.9 繰り返し(for文)
- 1.10 関数
- 1.11 クラス
- 1.12 ライブラリの読み込みとインストール
- 1.13 まとめ
- 第2章 ファイル入出力(file)
- 2.1 ファイルを読み込み、内容を表示する
- 2.2 1行ずつ読み込む
- 2.3 ファイルを閉じる
- 2.4 ファイルが存在しない場合
- 2.5 ファイルの内容で図形を描画する
- 2.6 ファイルに書き込む
- 2.7 ファイルに追記する
- 2.8 Withを用いたファイル処理
- 2.9 日本語を扱う
- 2.10 その他の操作
- 2.11 まとめ
- 第3章 GUIプログラミング(tkinter)
- 3.1 ウィンドウを表示する
- 3.2 ラベルを配置する
- 3.3 ボタンを配置する
- 3.4 四角形を描画する
- 3.5 チェックボックスを配置する
- 3.6 スライダを使う
- 3.7 1行入力
- 3.8 テキスト部品
- 3.9 メッセージボックス
- 3.10 図形をアニメーションさせる
- 3.11 まとめ
- 第4章 グラフを描く(matplotlib)
- 4.1 折れ線グラフを描いてみる
- 4.2 複数のデータを1つのグラフに書いてみる
- 4.3 色々な種類のグラフ
- 4.4 まとめ
- 第5章 スクレイピング(bs4)
- 5.1 Beautiful Soupを使用できるようにする
- 5.2 スクレイピングの処理の流れ
- 5.3 HTMLの要素を取得する
- 5.4 URLにアクセスしてHTMLを取得する
- 5.5 時間間隔をあける
- 5.6 複数ページにアクセスする
- 5.7 スクレイピングでの注意事項
- 5.8 まとめ
- 第6章 データベース(SQLite)
- 6.1 SQLite3を使用できるようにする
- 6.2 関係データベースとは
- 6.3 プログラムの基本パターン
- 6.4 テーブルの作成
- 6.5 DB Browser for SQLiteの使用方法
- 6.6 データベースの操作
- 6.7 スクレイピングとデータベースとの連携
- 6.8 まとめ
- 第7章 自然言語処理(Janome)
- 7.1 Janomeを使用できるようにする
- 7.2 形態素解析する
- 7.3 個々の解析結果を扱う
- 7.4 単語の出現回数を数える
- 7.5 HTMLからタグを外す
- 7.6 ユーザ辞書
- 7.7 フィルタの作り方
- 7.8 まとめ
- 第8章 ネットワーク(socket)
- 8.1 クライアントサーバモデル
- 8.2 相手をどうやって指定するか?
- 8.3 まず実行してみましょう
- 8.4 プログラムの基本パターン
- 8.5 最も短いクライアントサーバプログラム
- 8.6 複数のクライアントと何度も通信できるようにする
- 8.7 チャットプログラムを作成する
- 8.8 まとめ
- 第9章 Webアプリケーション(Django)
- 9.1 Djangoを使用できるようにする
- 9.2 Djangoプロジェクトを作成する
- 9.3 設定ファイルの変更
- 9.4 Webの仕組み
- 9.5 Djangoアプリケーションを作成する
- 9.6 テンプレートを使う
- 9.7 入力されたデータを処理する
- 9.8 まとめ
- 第10章 数値計算(NumPy)
- 10.1 ベクトル、行列の作り方
- 10.2 部分配列へのアクセス
- 10.3 加減、スカラー倍、乗除算
- 10.4 内積、行列同士の積
- 10.5 NumPy配列の変換
- 10.6 型変換
- 10.7 csvファイルの読み込み
- 10.8 連立一次方程式の解法の実装
- 10.9 分類器の実装
- 10.10 NumPy配列の表示
- 10.11 NumPyの関数リスト
- 10.12 まとめ
- 第11章 画像処理(OpenCV)
- 11.1 OpenCVを使用できるようにする
- 11.2 画像は何からできているか?
- 11.3 画像を表示する
- 11.4 ピクセルの値を調べる
- 11.5 グレースケール化する
- 11.6 二値化処理
- 11.7 フィルタ処理
- 11.8 物体検出
- 11.9 動画を表示する
- 11.10 動物体検出
- 11.11 まとめ
- 第12章 機械学習入門(scikit-learn)
- 12.1 機械学習とは?
- 12.2 学習方法
- 12.3 ニューラルネットワーク
- 12.4 第1世代: 単純パーセプトロン
- 12.5 第2世代:多層パーセプトロン
- 12.6 scikit-learn
- 12.7 画像認識プログラム
- 12.8 まとめ
- 第13章 畳み込みニューラルネットワーク(Keras)
- 13.1 TensorFlowとKerasを使えるようにする
- 13.2 多層パーセプトロンの実装
- 13.3 畳み込みニューラルネットワークの実装
- 13.4 自前のデータセットを使う
- 13.5 学習済みのモデル
- 13.6 ファインチューニング
- 13.7 まとめ
- 付録A 他言語を知っている人へのメモ
- 付録B Google Colaboratoryの使い方
正誤表 2019/10/2
本文の内容に誤りがありました。 お詫びして訂正いたします。
p.343 ページ中央の実行結果の2行目
誤
画像ファイル名: test2.jpg
正
画像ファイル名: test2.png
TensorFlow 2.0への対応(2019-12-6掲載)
TensorFlow 2.0ではKerasがTensorFlowに取り込まれ、Kerasのimportの仕方が変わりました。例えば、nn01.pyでは
import keras
from keras.datasets import fashion_mnist
from keras.models import Sequential
from keras.layers.core import Dense
の部分を以下のように書き換えてください。他も同様です。
from tensorflow import keras # (1) モジュールのインポート
from tensorflow.keras.datasets import fashion_mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
nnPredict.pyは
from keras.models import load_model
を
from tensorflow.keras.models import load_model
に書き換えてください。
サンプルプログラム更新(2021-7-26掲載)
バージョンの変更に伴い、本文376~377ページ掲載のリスト13.13、imageDataGen.pyの34行目を下記の通り変更いたします。
旧:model.fit_generator(
新:model.fit(