【2023最新】「python」のおすすめ本!人気ランキング
この記事では、「python」のおすすめ本をランキング形式で紹介していきます。インターネット上の口コミや評判をベースに集計し独自のスコアでランク付けしています。
Amazonで詳しく見る
紹介文
Python初心者でも安心して学べる超入門書の登場!
【本書の概要】
Web開発やデータ分析などの分野で近年、ユーザー数が増えてきているPython。
最近では、Pythonに触れる方も多くなってきています。
本書はそうしたPython初心者の方に向けて、
簡単なサンプルを作りながら、対話形式でプログラミングのしくみを学ぶ書籍です。
【対象読者】
Pythonのついて、何も知らない超初心者
【1年生シリーズ・3つのポイント】
・対話形式で解説し、イラストを交えながら、基礎知識を解説します。
・初めての方でも安心して学習できるよう基本文法もしっかり解説します。
・平易でサンプルを用意していますので、安心してプログラムを体験できます。
【本書のポイント】
ヤギ博士とフタバちゃんと一緒に
基本的なプログラムから、面白い人工知能アプリの作成まで
体験して、プログラミングのしくみを学ぶことができます。
【著者】
森 巧尚(もり よしなお)
iPhoneアプリやWebコンテンツの制作、執筆活動、関西学院大学非常勤講師など、
プログラミングにまつわる幅広い活動を行っている。
近著に『やさしくはじめるiPhoneアプリ作りの教科書』(マイナビ出版)、
『楽しく学ぶ アルゴリズムとプログラミングの図鑑』(マイナビ出版) 、
『なるほど!プログラミング』(SBクリエイティブ)などがある。
第1章 Python で何ができるの?
第2章 Python を触ってみよう
第3章 プログラムの基本を知ろう
第4章 アプリを作ってみよう
第5章 人工知能(チノ)くんと遊んでみよう
Amazonで詳しく見る
紹介文
プログラミング初学者に向けた独習シリーズに『独習Python』が新登場。山田祥寛氏によるPython入門書の決定版。
手を動かしておぼえるPythonプログラミング
――独学に最適な“標準教科書”
プログラミングの初学者に向けた独習シリーズに『独習Python』が新登場。
プログラミング言語入門書の執筆で定評のある山田祥寛氏による、
Python入門書の決定版です。
独習シリーズの強みである、手を動かしておぼえる(書いて実行して結果を確認する)
特長を生かし、Pythonの基本的な言語仕様から、標準ライブラリ、ユーザー定義関数、
オブジェクト指向構文、モジュールまで、サンプルプログラムを例示しながら
詳細かつ丁寧に解説します。
プログラミングの基礎知識がない方でも、解説→例題(サンプル)→理解度チェック
という3つのステップで、Pythonでプログラミングを行う際に必要な知識・概念・機能を
体系的に習得できます。
プログラミングの入門者、これからPythonで開発を始めたい初学者から、再入門者、
学生・ホビープログラマまで、「一からPython言語を学びたい」「Pythonプログラミング
の基本をしっかり身につけたい」という方におすすめの一冊です。
第1章 イントロダクション
1.1 Pythonとは?
1.2 Pythonの歴史と現状
1.3 Pythonアプリを開発/実行するための基本環境
1.4 Pythonプログラミングの基本
1.5 Pythonの基本ルール
1.6 開発/学習の前に押さえておきたいテーマ
第2章 Pythonの基本
2.1 変数
2.2 データ型
第3章 演算子
3.1 算術演算子
3.2 代入演算子
3.3 比較演算子
3.4 論理演算子
3.5 ビット演算子
3.6 演算子の優先順位と結合則
第4章 制御構文
4.1 条件分岐
4.2 繰り返し処理
4.3 ループの制御
4.4 例外処理
第5章 標準ライブラリ[基本]
5.1 ライブラリの分類
5.2 文字列の操作
5.3 日付/時刻の操作
第6章 標準ライブラリ[コレクション]
6.1 シーケンス型
6.2 セット(集合)型
6.3 辞書(dict)型
第7章 標準ライブラリ[その他]
7.1 正規表現
7.2 ファイル操作
7.3 ファイルシステムの操作
7.4 HTTP経由でコンテンツを取得する
7.5 その他の機能
第8章 ユーザー定義関数
8.1 ユーザー定義関数の基本
8.2 変数の有効範囲(スコープ)
8.3 引数のさまざまな記法
8.4 関数呼び出しと戻り値
第9章 ユーザー定義関数[応用]
9.1 デコレーター
9.2 ジェネレーター
9.3 関数のモジュール化
9.4 非同期処理
9.5 ドキュメンテーション
第10章 オブジェクト指向構文
10.1 クラスの定義
10.2 カプセル化
10.3 継承
10.4 ポリモーフィズム
第11章 オブジェクト指向構文[応用]
11.1 例外処理
11.2 特殊メソッド
11.3 データクラス
11.4 イテレーター
11.5 メタクラス
付録A 「練習問題」「このの理解度チェック」解答
Amazonで詳しく見る
紹介文
手作業だと膨大に時間がかかる処理を一瞬でこなすPython 3プログラムの作り方について学べる入門書。
Pythonによる自動処理入門。とにかく、わかりやすい!
ファイル名の変更や表計算のデータ更新といった作業は、日々の仕事の中で頻繁に発生します。ひとつふたつ修正するだけであれば問題はありません。しかし、それが数十、数百となってくると手に負えません。そのような単純な繰り返し作業はコンピュータに肩代わりしてもらうとすごくラクになります。本書では、手作業だと膨大に時間がかかる処理を一瞬でこなすPython 3プログラムの作り方について学びます。対象読者はノンプログラマー。本書で基本をマスターすれば、プログラミング未経験者でも面倒な単純作業を苦もなくこなす便利なプログラムを作れるようになります。さらに、章末の練習問題を解くことで、類似のタスクを自動処理するスキルをもっと高めることができます。
Amazonで詳しく見る
紹介文
本書は「Pythonだけ」を学ぶ本ではありません。Pythonを使ってプログラミングを紹介していますが、伝えたい内容はPythonに限らない「プログラミング全般」の知識です。
本書の著者、コーリー・アルソフ(Cory Althoff)は、「独学プログラマー」です。本書は、彼が独学で、ゼロからプログラミングを学んだ体験に基づいて書かれました。
プログラミングを独学で身に付けるために、著者がPythonを通して学んだエッセンスが書かれています。彼の独学プログラマーとしての学び方は、Amazon.comでの本書の評価を見るとわかるように、多くの人に支持されています。
――訳者あとがきより
第1部(Part1)
第1章 イントロダクション
第2章 さあ、はじめよう!
第3章 プログラミング入門
第4章 関数
第5章 コンテナ
第6章 文字列操作
第7章 ループ
第8章 モジュール
第9章 ファイル
第10章 知識を1つにまとめる
第11章 ハマったときの助け
第2部(Part2)
第12章 プログラミングパラダイム
第13章 オブジェクト指向プログラミングの4大要素
第14章 もっとオブジェクト指向プログラミング
第15章 知識を1つにまとめる
第3部(Part3)
第16章 Bash
第17章 正規表現
第18章 パッケージ管理
第19章 バージョン管理
第20章 知識を1つにまとめる
第4部(Part4)
第21章 データ構造
第22章 アルゴリズム
第5部(Part5)
第23章 プログラミングのベストプラクティス
第24章 プログラマーとしての最初の仕事
第25章 チームで働く
第26章 さらに学ぼう
第27章 次のステップ
第6部(Part6)
補章 より良いコードにするために
補章 継続して学ぶために
謝辞
訳者あとがき
索引
第1部(Part1)
第1章 イントロダクション
第2章 さあ、はじめよう!
第3章 プログラミング入門
第4章 関数
第5章 コンテナ
第6章 文字列操作
第7章 ループ
第8章 モジュール
第9章 ファイル
第10章 知識を1つにまとめる
第11章 ハマったときの助け
第2部(Part2)
第12章 プログラミングパラダイム
第13章 オブジェクト指向プログラミングの4大要素
第14章 もっとオブジェクト指向プログラミング
第15章 知識を1つにまとめる
第3部(Part3)
第16章 Bash
第17章 正規表現
第18章 パッケージ管理
第19章 バージョン管理
第20章 知識を1つにまとめる
第4部(Part4)
第21章 データ構造
第22章 アルゴリズム
第5部(Part5)
第23章 プログラミングのベストプラクティス
第24章 プログラマーとしての最初の仕事
第25章 チームで働く
第26章 さらに学ぼう
第27章 次のステップ
第6部(Part6)
補章 より良いコードにするために
補章 継続して学ぶために
謝辞
訳者あとがき
索引
Amazonで詳しく見る
紹介文
プログラミング初心者向けPython入門書。5年ぶりの改訂版でPython3.9.0に対応。新機能追加でボリュームアップ。
実践を見据えた本格的な入門書の改訂版!
プログラミング初心者を対象としたPythonの総括的な入門書で、前提知識がなくても取り組むことができます。プログラミングとPythonの基礎から、データベース処理、Webプログラミング、ネットワークプログラミング、初歩の並列処理といった応用までわかりやすく丁寧に解説します。「入門Python 3」の5年ぶりの改訂版でPython3.9.0に対応、f文字列などの新機能が追加され大幅にボリュームアップしています。
プログラミング初心者向けPython入門書。5年ぶりの改訂版でPython3.9.0に対応。新機能追加でボリュームアップ。
Amazonで詳しく見る
紹介文
豊富なカラー図解とイラストで超わかる!プログラムの「読み方」「書き方」「しくみ」「動かし方」を根本から理解し、作りながらしっかり学べる、すべてのビギナーに最良の入門書!
1 プログラムってなんだろう
2 Pythonを始めよう
3 Pythonでプログラムを書くときのルール
4 プログラムを構成する基本的な機能
5 数当てゲームを作ってみよう
6 数当てゲームをグラフィカルにしよう
7 クラスとオブジェクト
8 拡張モジュールを使ってみよう
Amazonで詳しく見る
紹介文
今、最も熱いプログラミング言語、それがPython
Python入門書のデファクトスタンダードが4年ぶりに大改訂。
近年、Pythonの利用が、機械学習、AIなどの科学技術分野へ
大きく広がっている現状を踏まえて、すべてのパートに手を入れ
いくつかの新章を追加しました。
次の10年を担うPythonプログラマを養成するための一冊。
Chapter01 プログラミング言語Python
Chapter02 Pythonでプログラミングをはじめよう
Chapter03 Pythonの基礎をマスターする
Chapter04 組み込み型を使いこなす
Chapter05 Pythonと関数型プログラミング
Chapter06 クラスとオブジェクト指向開発
Chapter07 クラスの継承と高度なオブジェクト指向機能
Chapter08 モジュール
Chapter09 スコープとオブジェクト
Chapter10 例外処理
Chapter11 標準ライブラリを使う
Chapter12 Pythonとデータサイエンス
Chapter13 Pythan2
・AnacondaやJupyter Notebookなど、Pythonの最新開発環境に対応
・NumPy、matplotlibなどの科学技術系ライブラリに対応
・Windows、macOS、Linux対応
Chapter01 プログラミング言語Python
Chapter02 Pythonでプログラミングをはじめよう
Chapter03 Pythonの基礎をマスターする
Chapter04 組み込み型を使いこなす
Chapter05 Pythonと関数型プログラミング
Chapter06 クラスとオブジェクト指向開発
Chapter07 クラスの継承と高度なオブジェクト指向機能
Chapter08 モジュール
Chapter09 スコープとオブジェクト
Chapter10 例外処理
Chapter11 標準ライブラリを使う
Chapter12 Pythonとデータサイエンス
Chapter13 Pythan2
Amazonで詳しく見る
紹介文
最新のPython、ライブラリおよびWindoes 11に対応した「Python1年生」の第2版の登場!
おかげさまで8万部突破!
読者の声に応えて
第2版の登場
【本書の概要】
Web開発やデータ分析などの分野で、ユーザー数が増えてきているPython。
最近では、Pythonに触れる方も多くなってきています。
本書はそうしたPython初心者の方に向けて、
ヤギ博士とフタバちゃんと一緒に
基本的なプログラムの作成から、面白い人工知能アプリの作成までを体験。
対話形式でプログラミングのしくみを学ぶことができます。
【対象読者】
Pythonについて何も知らないプログラミング超初心者
【本書のポイント】
・対話形式で解説し、イラストを交えながら、基礎知識を解説します。
・初めての方でも安心して学習できるよう基本文法もしっかり解説します。
・平易なサンプルを用意していますので、安心してプログラムを体験できます。
・2022年時点の最新の環境(Windows 11、Python 3.10など)に対応しています。
・エラーでつまづいた場合の対応方法を巻末に掲載しています。
【目次】
第1章 Pythonで何ができるの?
第2章 Pythonを触ってみよう
第3章 プログラムの基本を知ろう
第4章 アプリを作ってみよう
第5章 人工知能くんと遊んでみよう
【著者プロフィール】
森 巧尚(もり・よしなお)
『マイコンBASICマガジン』(電波新聞社)の時代からゲームを作り続けて現在はコンテンツ制作や執筆活動を行い関西学院大学非常勤講師、
関西学院高等部非常勤講師、成安造形大学非常勤講師、大阪芸術大学非常勤講師、プログラミングスクールコプリ講師などを行っている。
近著に、『Python1年生』『Python2年生 スクレイピングのしくみ』『Python2年生 データ分析のしくみ』『Python3年生 機械学習のしくみ』
『Java1年生』『動かして学ぶ!Vue.js開発入門』『Python自動化簡単レシピ』(いずれも翔泳社)、
『ゲーム作りで楽しく学ぶ Pythonのきほん』『楽しく学ぶ Unity2D超入門講座』『楽しく学ぶ Unity3D超入門講座』(いずれもマイナビ出版)などがある。
第1章 Pythonで何ができるの?
第2章 Pythonを触ってみよう
第3章 プログラムの基本を知ろう
第4章 アプリを作ってみよう
第5章 人工知能くんと遊んでみよう
Amazonで詳しく見る
紹介文
データ収集の基本!スクレイピングを体験してみよう!
Pythonでスクレイピングを体験してみよう!
【スクレイピングとは】
機械学習やデータ分析になくてはならない「データ」。
このようなデータは、インターネット上に膨大にありますが、Pythonを使えば効率よくデータ収集できます。
こうした手法を「スクレイピング」といいます。
サイト自体もオープンデータ化が進んでおり、データを集めやすい環境が整ってきています。
【Python2年生について】
「Python2年生」シリーズは、「Python1年生」を読み終えた方を対象とした入門書です。
ある程度、技術的なことを盛り込み、本書で扱う技術について身に着けてもらいます。
【ターゲット】
・ネット上からデータ収集を行う初心者
・データ分析の手前の初心者
【本書の売り】
ヤギ博士&フタバちゃんと一緒に、インターネットからのファイルのダウンロード方法、
HTML解析の方法、いろいろなデータの読み書き、
APIの使い方といったデータ収集と便利なライブラリを利用した簡単な可視化手法を解説する書籍です。
また最終的にデータ収集を自動化する方法も簡単に解説します。
第1章 Pythonでデータをダウンロード
LESSON 01 スクレイピングってなに?
LESSON 02 Pythonをインストールしてみよう
LESSON 03 requestsでアクセスしてみよう
第2章 HTMLを解析しよう
LESSON 04 HTMLを解析してみよう
LESSON 05 ニュースの最新記事一覧を取得してみよう
LESSON 06 リンク一覧をファイルに書き出そう
LESSON 07 画像を一括ダウンロードしよう
第3章 表データを読み書きしよう
LESSON 08 pandasを使ってみよう
LESSON 09 さまざまなデータの加工
LESSON 10 グラフで表示してみよう
LESSON 11 Excelファイルを読み書きしてみよう
第4章 オープンデータを分析してみよう
LESSON 12 オープンデータってなに?
LESSON 13 郵便局:郵便番号データ
LESSON 14 e-Stat:政府統計の相互窓口
LESSON 15 キッズすたっと:探そう統計データ
LESSON 16 自治体のデータ:データシティ鯖江
第5章 Web APIでデータを収集しよう
LESSON 17 Web APIってなに?
LESSON 18 OpenWeatherMapってなに?
LESSON 19 現在の天気を調べよう
LESSON 20 現在から5日間(3時間ごと)の天気を調べよう
Amazonで詳しく見る
紹介文
Pythonは世界中で広く使用されているオブジェクト指向言語で、スタンドアロンプログラムにも、様々な種類のスクリプトにも利用できます。豊富な機能を備えている一方で、非常に使いやすく、無料で入手できる、ポータブルである、といった特徴も備えています。本書は、プログラミングそのものが初めての人から、他の言語で経験を積んでいる人まで、どちらの人にもPythonという言語の基本を比較的短い時間で学べるように作られています。本書を読めば、どのような種類のアプリケーションを作るにしても、必要な知識や技術が十分に身に付くようになっています。第3版はPython言語の変化への対応を中心に改訂され、Python3.0を含めた新しいバージョンでの変更点についての解説を加えるとともに、将来新しいバージョンへ移行する際に役立つ情報も盛り込みました。Pythonの基礎を余すところなく解説するPython入門書の決定版です。
1部 Pythonの基礎知識
2部 ビルトインオブジェクト
3部 ステートメント
4部 関数
5部 モジュール
6部 クラスとオブジェクト指向プログラミング
7部 例外
付録
Amazonで詳しく見る
紹介文
現役シリコンバレーエンジニアが教える「最強のプログラミング」講義!
10万人が選んだ人気No.1オンライン講座が
超わかりやすくパワーアップして書籍化!
海外企業でも通用する
一流のプログラミング技術が学べます!
★基礎から応用、一流コードスタイルまで1冊で学べる★
【応用編】ではニーズの高い実践的テクニックを中心に、
【入門編】では基礎から1歩ずつ、わかりやすく解説。
シリコンバレーのトップIT企業で活躍する著者が
世界標準のPythonスキルを一気に伝えます。
★海外でも通用する
一流のプログラミング技術が身につく★
知っていましたか?
アメリカのエンジニアの年収は日本の5~10倍です。
本書は「いつか海外で活躍したい」、
そんな夢の実現も強力にバックアップしてくれる
「海外進出の道しるべ」ともなる一冊です。
★10万人が選んだ人気No.1講座の書籍化★
本書のもととなったのは、オンライン講座Udemyで人気No.1を獲得したPython講座。
本格的な内容をわかりやすく伝える著者の講座は人気が高く、延べ20万人以上が受講しています(全講座計)。
本書はさらに内容を充実させてパワーアップ! 自分のペースでしっかり学べます。
独学の強い味方、「サンプルコード」の無料ダウンロードサービス付き。
★エンジニアの成功戦略も教えます★
コラムでは、エンジニアのキャリア戦略の立て方、成功するポイント、独学のコツなども紹介。
文系出身、TOEIC300点代からスタートした著者が渾身のエールを送ります。
★用語集、Pointなども充実★
コードを書くときの注意点、知っておきたい豆知識、
開発の現場で必要なことなどは
「Point」としてたっぷり掲載。
巻末には「用語集」も収録し、
徹底して実践的な内容となっています。
オンライン講座Udemyで9万人以上が選んだ人気No.1講座を完全書籍化! 超わかりやすくパワーアップして、基礎から応用、一流コードスタイルまで、世界で通用する「最強のプログラミング」が学べる!
学習を始める前に ~Pythonの環境設定
【入門編】
Lesson 1 Pythonの基本
1 変数の宣言と数値の計算をマスターしよう
2 文字列のさまざまな操作方法
Lesson 2 データ構造
1 複数データを並列にまとめる
2 変更できないリスト? いえ、タプルです
3 キーと値をセットで記憶する辞書型
4 データ同士の演算ができる集合
Lesson 3 制御フロー
1 読みやすいコードを書こう
2 条件に応じて処理を分岐させよう
3 繰り返し処理でデータを一気に処理しよう
Lesson 4 関数と例外処理
1 何度も実行する処理の関数を作ろう
2 関数の応用をマスターしよう
3 内包表記でリストをシンプルに生成しよう
4 変数の有効範囲
5 例外処理
Lesson 5 モジュールとパッケージ
1 作成したパッケージをインポートしよう
2 Pythonのライブラリの使い方
Lesson 6 オブジェクトとクラス
1 クラスとメソッド
2 クラスをもっと活用してみよう
Lesson 7 ファイル操作とシステム
1 ファイルの基本的な操作
2 ファイルの便利な活用方法
3 圧縮ファイルを扱おう
4 さらに高度なファイルに関する操作
【演習編】
Lesson 8 簡単なアプリケーションを作ってみよう
【応用編】
Lesson 9 コードスタイル
1 Pythonのコードスタイル
2 さらにくわしくPythonの書き方を知ろう
Lesson 10 コンフィグとロギング
1 設定ファイルのさまざまな形式
2 ロギングの基本と適切な書き方
3 ログをメールで送信しよう
4 実行環境を切り替えて使う
Lesson 11 Webとネットワーク
1 Webでよく使うファイル形式
2 Pythonで通信してみよう
3 PythonでWeb サーバーを作ろう
4 Webスクレイピングしてみよう
Lesson 12 並列化
1 マルチスレッドで並列化しよう
2 マルチプロセスによる並列化
3 高水準のインターフェースを使って並列化しよう
Lesson 13 データ解析
1 データ解析を始める前に
2 データをまとめて扱うnumpy
3 pandasで表形式のデータを扱う
4 matplotlibでグラフを描画する
5 scikit-learnで機械学習を行う
6 株価のデータ解析と予測
Amazonで詳しく見る
紹介文
プログラミング初心者を対象としたPythonの入門書。プログラミングおよびPythonの基礎から応用まで丁寧に説明。
実践を見据えた本格的な「Python入門書」!
Pythonが誕生して四半世紀。データサイエンスやウェブ開発、セキュリティなどさまざまな分野でPythonの人気が急上昇中です。プログラミング教育の現場でもCに代わってPythonの採用が増えてきています。本書は、プログラミングが初めてという人を対象に書かれた、Pythonの入門書です。前提とする知識は特にありません。プログラミングおよびPythonの基礎からウェブ、データベース、ネットワーク、並列処理といった応用まで、Pythonプログラミングをわかりやすく丁寧に説明します。
Amazonで詳しく見る
紹介文
Excelは全ビジネスマン必須のアプリケーションですが、操作がめんどうだと感じたことはありませんか?
本書は、「Python」というプログラミング言語を使って、そんなめんどうな業務を自動化・効率化する方法を紹介します。プログラミングがはじめての人にもわかるように、コードの書き方からしっかり解説。ExcelやGoogleスプレッドシートでのグラフ作成やデータ収集、表計算、データ分析など、ひととおりの業務をプログラムで動かす方法がわかります。
プログラミングのはじめの一歩としてもオススメです。
■■はじめに
■■■第1章 Pythonをはじめよう
■■1-1 Pythonの特徴
■Column オープンソースソフトウェア(OSS)はどうして無料なの?
■■1-2 Pythonのインストール
■1-2-1 Anacondaのダウンロード
■Column Python 2? Python 3?
■1-2-2 Anacondaのインストール
■■1-3 Pythonをさわってみよう
■1-3-1 CUIの起動
■1-3-2 Pythonの対話モードの起動
■■1-4 PyCharmを使おう
■1-4-1 PyCharmのダウンロード
■1-4-2 PyCharmのインストール
■1-4-3 PyCharmを日本語で利用する
■1-4-4 インタープリターの設定
■1-4-5 「hello world」と表示するプログラムの作成
■Column PyCharmをすぐ呼び出せるようにしておこう
■■■第2章 Pythonを動かしてみよう
■■2-1 Pythonのきほん
■2-1-1 データの性質
■2-1-2 オブジェクトと関数
■2-1-3 計算してみよう
■2-1-4 異なるデータ型同士の計算
■2-1-5 オブジェクトを操作する
■2-1-6 同じオブジェクトを使いまわす
■■2-2 ある条件で処理を分ける
■2-2-1 条件を判定する
■2-2-2 条件に応じて処理をする
■■2-3 オブジェクトをひとまとまりで扱う
■2-3-1 中身をあとから変更できるリスト型
■2-3-2 中身をあとから変更できないタプル型
■Column ミュータブルとイミュータブル
■2-3-3 キーと値をセットで扱う辞書型
■■2-4 同じ処理を繰り返し行う
■2-4-1 要素の数だけ処理を繰り返す
■2-4-2 条件が続く限り処理を繰り返す
■2-4-3 処理の途中でループを抜け出す
■■2-5 定義した処理を実行する
■Column インデントは半角スペース4つ?
■2-5-1 関数にわたす情報・関数から戻ってくる情報
■2-5-2 変数が使える範囲
■Column エラーメッセージが表示されたら
■2-5-3 あらかじめ用意されている関数
■■2-6 ファイルを機能ごとに分けて再利用する
■2-6-1 使いたいファイルを読み込ませる
■2-6-2 あらかじめ用意されているライブラリを使う
■Column サードパーティライブラリ
■■2-7 例外処理
■■■第3章 Excel作業を自動化しよう
■■3-1 Excelファイルを操作するための準備
■3-1-1 OpenPyXLをインストールする
■3-1-2 新しいフォルダの作成
■3-1-3 Excelファイルをフォルダに配置する
■Column PyCharm上でのファイル移動
■■3-2 Excelの値を表示する
■3-2-1 指定したセルの値を取得する
■Column 取得するセル位置を指定するほかの方法
■3-2-2 複数のセルをまとめて取得する
■■3-3 Excelファイルを編集する
■3-3-1 Excelファイルを新規作成する
■3-3-2 Excelシートを追加/削除する
■3-3-3 セルの値を編集する
■3-3-4 フォントを設定する
■■3-4 Excelのレイアウトを編集する
■3-4-1 Excelの行と列の幅を設定する
■3-4-2 行と列を固定表示する
■Column #からはじまる行はなに?
■■3-5 Excelのグラフを作成する
■3-5-1 グラフが読み込むデータを決める
■3-5-2 グラフの種類を決める
■3-5-3 グラフにデータをわたす
■3-5-4 グラフをつくる
■3-5-5 データから系列をつくる
■Column PyCharmのコーディングアシスタンスについて
■Column GitやGitHubでプログラムを管理しよう
■■■第4章 Googleスプレッドシート操作も自動化しよう
■■4-1 Googleスプレッドシートを操作するための初期設定
■4-1-1 Googleアカウントの作成
■4-1-2 Google Cloud Platformプロジェクトの作成
■4-1-3 スプレッドシートを操作するためのAPIを有効化する
■4-1-4 サービスアカウントを作成し、認証情報をダウンロードする
■4-1-5 利用ライブラリをインストールする
■■4-2 新しいスプレッドシートを作成する
■4-2-1 プログラムがAPIにアクセスできるよう設定する
■4-2-2 スプレッドシートを作成する
■4-2-3 スプレッドシートの共有権限を変更する
■4-2-4 スプレッドシートのURLを表示する
■Column 新しいシートを追加する
■■4-3 セルの値を取得する
■4-3-1 事前準備
■4-3-2 スプレッドシートを開く
■4-3-3 セルの値を取得する
■■4-4 セルの値を編集する
■■■第5章 Excel作業の前工程・後工程を自動化しよう
■■5-1 フォルダ・ファイル操作
■5-1-1 絶対パスと相対パス
■5-1-2 フォルダにあるファイルを一覧表示する
■5-1-3 フォルダを作成する
■5-1-4 ファイルの書き込みと読み込み
■Column モードオプションw、x、a の選び方
■5-1-5 ファイルを移動する
■■5-2 文字列操作
■5-2-1 文字列を検索する
■Column encoding オプションの指定について
■5-2-2 正規表現を使って文字列を検索する
■5-2-3 検索一致した文字列の位置を調べる
■5-2-4 文字列を置換する
■Column よりシンプルな文字列置換
■Column format()メソッドで文字列に変数を埋め込む
■■5-3 CSVデータの処理
■5-3-1 CSVの出力
■Column newlineオプションの指定について
■5-3-2 CSVの読み込み
■5-3-3 CSVの加工
■■5-4 Webからデータを取得しよう
■Column Webから情報を取得する際の注意点
■■■第6章 表計算やデータ分析をやってみよう
■■6-1 データ分析を始める前に
■6-1-1 ExcelとPythonの使い分け
■6-1-2 データ分析の流れ
■■6-2 JupyterLabを使ってみよう
■6-2-1 JupyterLabとは
■Column Jupyter Notebookとの違いは?
■6-2-2 JupyterLabを起動する
■6-2-3 実行してみよう
■Column 新しいファイルの追加
■6-2-4 pandasの基本的な使い方
■■6-3 データを分析する
■6-3-1 データの準備
■6-3-2 データを読み込む
■Column データセットの書き込み方法
■6-3-3 データを結合する
■Column 手動でのデータ追加方法
■Column 欠損値を補うには
■6-3-4 データを集計する
■■6-4 データを可視化する
■6-4-1 日本語フォントの使用について
■6-4-2 棒グラフを作成する
■6-4-3 折れ線グラフを作成する
■Column プログラムの書き進め方
■■■第7章 いろんな業務を自動化してみよう
■■7-1 複数のExcelファイルに分散した売上データを分析する
■例題の説明
■7-1-1 フォルダの中のExcelファイルを読み込む
■7-1-2 各月ごとに分かれている売上データを連結する
■Column インポートの順序とグループ化
■7-1-3 売上データと顧客流入元データを結合する
■7-1-4 顧客流入元ごとの売上合計を集計する
■7-1-5 Excelファイルに集計データを出力する
■さらなる応用
■■7-2 特定のルールに従って、フォルダ構成を整理する
■例題の説明
■7-2-1 作業用フォルダにすべてのファイルをコピーする
■7-2-2 すべてのファイルを取得する
■7-2-3 取得したファイルが請求書ファイルかどうかを判別する
■Column 処理を関数にする基準は?
■7-2-4 新しいファイル名とフォルダ名を取得する
■7-2-5 新しいフォルダを作成する
■7-2-6 ファイル名変更とフォルダ移動を行う
■さらなる応用
■■7-3 Webスクレイピングでデータを取得する
■例題の説明
■7-3-1 対象のWebページを確認する
■Column クエリパラメータ
■7-3-2 Webページから情報を取得する
■7-3-3 CSSセレクタを確認する
■7-3-4 取得したHTMLを解析する
■7-3-5 書籍のURLを取り出す
■さらなる応用
■Column Webページから画像を取得する
■■おわりに
■■参考文献
■■索引
■■読者特典
Amazonで詳しく見る
紹介文
データ分析の現場にあって入門書にない「汚いデータ」(ダーティデータ)に対応する、プロのノウハウを解説します。
これがリアルなデータ分析だ!
君は「汚いデータ」を処理できるか?
データ分析の現場にあって入門書にないもの――それは、「汚いデータ」(ダーティデータ)です。本書は、データ分析の現場では①どんなデータに出会い、②どのような問題が生じ、③どう対応すればよいのかというノウハウを解説。
事前の加工(視覚化)から機械学習、最適化問題まで、100本ノックをこなして、ビジネス現場で即戦力になれる「応用力」を身につけよう!
練習するライブラリ
・Pandas
・Numpy
・Matplotlib
・scikit-learn
・Networkxs
・pulp
・ortoolpy
・opencv
・dlib
・MeCab
第1部 基礎編:データ加工
第1章 ウェブからの注文数を分析する10本ノック
第2章 小売店のデータでデータ加工を行う10本ノック
第2部 実践編①:機械学習
第3章 顧客の全体像を把握する10本ノック
第4章 顧客の行動を予測する10本ノック
第5章 顧客の退会を予測する10本ノック
第3部 実践編②:最適化問題
第6章 物流の最適ルートをコンサルティングする10本ノック
第7章 ロジスティクスネットワークの最適設計を行う10本ノック
第8章 数値シミュレーションで消費者行動を予測する10本ノック
第4部 発展編:画像処理/言語処理
第9章 潜在顧客を把握するための画像認識10本ノック
第10章 アンケート分析を行うための自然言語処理10本ノック
Amazonで詳しく見る
紹介文
シンプルなサンプルソースコードで機能解説。視覚的に、直感的にわかるコンパクトレイアウト。開発現場ですぐに役立つ実践型リファレンス。関数型プログラミングの概念からPython3.0の新機能も解説。
1 基本とルール(インストールと環境設定
Hello Python!
Pythonの特徴と強み
Python入門
数値
文字列
フロー制御
リストとタプル
辞書)
2 プログラミング(オブジェクト
関数
モジュールとパッケージ
クラス)
3 実践(テスト
ファイル
関数型プログラミング
データ
ネットワーク
モジュール
Python2.6およびPython3.0の新機能)
Amazonで詳しく見る
紹介文
Pythonは初学者が学びやすく、データマイニングやディープラーニングなどの分野でも定番の言語です。本書は、Pythonの基本から、ファイル操作、Webスクレイピング、テキストマイニング、データマイニング、GUIアプリの作成、ディープラーニング、データの視覚化など、外部ライブラリを活用するテクニックまで解説します。最新版となる本書では、新たな外部ライブラリに関する章も追加しました。
第1章 Pythonの概要
1-1 Pythonの基本事項
Pythonとは
Pythonのダウンロードとインストール
1-2 プログラムの実行と保存
IDLE (Python GUI)を起動してプログラムを実行する
ソースファイルにコードを入力して保存する
保存済みのソースファイルを開いてプログラムを実行する
1-3 Anacondaのインストールと開発環境の用意
Anacondaとは
Anacondaをダウンロードしてインストールする
仮想環境を構築する
1-4 Jupyter Notebookを使う
Jupyter Notebookを仮想環境にインストールする
Notebookを作成する
Notebookのセルにソースコードを入力してプログラムを実行する
Notebookを保存する/保存したNotebookを開く
Jupyter Notebookの機能
Column Jupyter Notebookのコマンド
1-5 Spyderを使う
Spyderを仮想環境にインストールする
モジュールを作成してソースコードを入力/実行する
Spyderの機能
第2章 基本プログラミング
2-1 オブジェクトとデータ型
オブジェクトと変数
変数への代入
Pythonが扱うデータの種類
整数型
明示的にint型オブジェクトを生成する
Column 変数名を付けるときのルール
バイト列⇔int型オブジェクトの相互変換
浮動小数点数型
明示的にfloat型オブジェクトを生成する
無限大と非数
文字列型
Column 変数名の命名規則
論理型
値が存在しないことを示す
ソースコードに説明文を書く
2-2 演算
算術演算子
代入演算子
複合代入演算子による式の簡略化
演算子の優先順位
論理演算子
ビット演算子
2進数の仕組み
Column なぜ2進数?
小数の誤差を許さない10進浮動小数点数型
2-3 フロー制御
フロー制御の構成要素
プログラムの流れを変える
「もしも」を並べて複数のパターンに対応する
同じ処理を繰り返す
条件が成立したらforループを開始する
状況によって繰り返す処理の内容を変える
3つの処理をランダムに織り交ぜる
指定した条件が成立するまで繰り返す
Column フロー制御の2つの意味
無限ループを脱出する
ループ処理を途中で止めて次の繰り返しに移る
2-4 関数
処理だけを行う関数
引数を受け取る関数
処理結果を返す関数
パラメーター名を指定して引数を渡す
パラメーターに初期値を設定する
プログラム全体で有効な変数と関数内でのみ有効な変数
ローカル変数はグローバルスコープ/
他のローカルスコープから使えない
グローバル変数の操作
例外処理
2-5 リスト
任意の数のデータを一括管理する
作成済みのリストに要素を追加する
リストから要素を取り出す
リスト要素の先頭から連続してアクセスする
連続値を持つリストを自動生成する
リスト要素を切り出す
リストの更新、要素の追加、削除
リストの要素数を調べる
リストに別のリストの要素を追加する
指定した位置に要素を追加する
特定の要素を削除する
リストの要素を調べる
リストの要素をソートする
リストのコピー
リスト要素をリストにする
リスト内包表記でリストを作る
2-6 タプル
「変更不可」のデータを一括管理する
2-7 辞書
キーと値のペアでデータを管理する
辞書要素の参照/追加/変更/削除
辞書のキーをまとめて取得する
辞書の値だけを取得する
辞書の要素をまるごと取得する
辞書のキーと値をforでイテレートする
2要素のシーケンスを辞書に変換する
辞書に辞書を追加する
辞書の要素をまるごとコピーする
辞書の要素を削除する
2-8 複数のシーケンスのイテレート
3つのリストをまとめてイテレートする
2つのリストの各要素をタプルにまとめたリストを作る
2つのリストから辞書を作る
内包表記で辞書を作成する
2-9 集合
要素の重複を許さないデータ構造
集合を使って重複した要素を削除/抽出する
ユニオン/インターセクション
2-10 特殊な関数
伸縮自在のパラメーター
キーと値がセットになったパラメーター
関数オブジェクトと高階関数
関数内関数とクロージャー
小さな関数は処理部だけの「式」にしてしまう
ジェネレーターから1つずつ取り出す
ソースコードを書き換えずに関数に機能を追加する
2-11 クラスとオブジェクト
オブジェクトを定義する
スーパークラスを継承してサブクラスを作る(継承①)
インスタンス変数とオブジェクトの初期化メソッドを定義する(継承②)
3つのサブクラスのメソッドをランダムに呼び分ける(継承③)
プログラム開始時にインスタンスを生成する(継承④)
第3章 文字列の操作
3-1 文字列操作の基本
複数行の文字列を扱う
「\」で文字をエスケープして改行やタブを入れる
「"こん" + "にちは"」で文字列を連結する
「ようこそ * 4」で文字列を繰り返す
文字列の長さを調べる
文字列の中から必要な文字だけ取り出す
特定の文字を目印にして文字列を切り分ける
特定の文字を間に挟んで文字列同士を連結する
文字列の一部を置き換える
書式を設定して文字列を自動生成する
小数点以下の桁数を指定して文字列にする
数値を3桁で区切る
先頭/末尾が指定した文字列であるか調べる
文字列の位置を調べる
指定した文字列がいくつ含まれているか、その個数を取得する
英文字、または英文字と数字であるかを調べる
小文字?大文字/大文字?小文字への変換
テキストを右揃え/左揃え/中央揃えにする
クリップボードにコピーした文字列を読み込む
クリップボードの文字列を分割して行頭にコメント記号「#」を付ける
3-2 正規表現によるパターンマッチング
正規表現とは
正規表現オブジェクト
文字列だけのパターン
2つ以上のどれかにマッチさせる
パターンの位置を指定する
どれか1文字にマッチさせる
どれでも1文字にマッチさせる
文字列の繰り返しにマッチさせる
複数のパターンをまとめる
グループにマッチした文字をすべて取得する
特定のグループをスキップしてマッチングさせる
貪欲マッチと非貪欲マッチ
マッチング結果をすべて文字列で取得する
文字の集合を表す短縮形
独自の文字集合を定義する
ドットとアスタリスクであらゆる文字列とマッチさせる
ドット文字「.」を改行とマッチさせる
アルファベットの大文字/小文字を無視してマッチングさせる
正規表現で検索した文字列を置き換える
マッチした文字列の一部を使って置き換える
複雑な正規表現をわかりやすく表記する
電話番号用の正規表現を作る
メールアドレス用の正規表現を作る
クリップボードのデータから電話番号とメールアドレスを抽出する
Column ファイルの関連付け
第4章 ファイルの操作と管理
4-1 ファイル操作
現在、作業中のディレクトリを取得する
ディレクトリを移動する
新規のフォルダーを作成する
絶対パスを取得/確認する
任意のフォルダー間の相対パスを取得する
パスをディレクトリパスとベース名に分けて取得する
パスのすべての要素を分解して取得する
ファイルサイズを調べる
フォルダーの内容を調べる
パスが正しいかを調べる
変数専用ファイルにデータを保管する
shelveファイルにデータを追加してデータの一覧を取得する
変数を定義コードごと別ファイルに保存する
4-2 ファイルの管理
ファイルをコピーする
フォルダーごとコピーする
ファイルを移動する
フォルダーを移動する
特定の拡張子を持つファイルを完全に削除する
フォルダーの中身ごと完全に削除する
ファイルやフォルダーを安全に削除する
ディレクトリツリーを移動する
ZIPファイルで圧縮する
ZIPファイルでフォルダーごと圧縮する
ZIPファイルの情報を取得する
ZIPファイルを展開する
ZIPファイルの特定のファイルのみを展開する
自動バックアッププログラムを作成する
第5章 デバッグ
5-1 例外処理とログの収集
例外を発生させる
独自の例外を発生させて例外処理を行う
エラーの発生位置とそこに至る経緯を確認する
エラー発生時のトレースバックをファイルに保存する
ソースコードが正常に使われているかチェックする
ログを出力する
ログレベルをいろいろ変えてみる
ログを無効化する
ログをファイルに記録する
5-2 IDLEのデバッガーを利用したデバッグ
IDLEのデバッガーでデバッグする
ステップオーバーでデバッグする
指定したコードまで一気に実行して停止させる
第6章 Excelシートの操作
6-1 ワークシートの操作
Excelシートを操作するためのモジュールをインストールする
Excelブックを読み込む
Excelシートのタイトル一覧を取得する
Excelシートを読み込む
ワークシートからセルの情報を取得する
Cellオブジェクトからセル情報を取得する
セル番地を数値で指定する
集計表のサイズを取得する
セル番地の列の文字と番号を変換する
ワークシートの特定の範囲のCellオブジェクトを取得する
6-2 レコード、カラムの操作
集計表をデータベースのテーブルとして考える
1列のデータを取り出す
すべての列のデータを列単位で取り出す
1行のレコードを取り出す
すべてのデータをレコード単位で取り出す
指定したセル範囲のデータを取得する
6-3 ワークブックの作成と編集
新規のワークブックを生成する
ワークブックを保存する
ワークシートを追加する
位置と名前を指定して新規ワークシートを追加する
ワークシートを削除する
セルに値を書き込む
データ更新用のアップデータプログラムを作る
数式を入力する
セルの幅と高さを設定する
セルを結合する
セルの結合を解除する
ウィンドウを固定する
レコード単位で書き込む
グラフを作成する
第7章 Wordドキュメント
7-1 Wordドキュメントの処理
Wordドキュメントを操作するためのモジュールをインストールする
Wordドキュメントを読み込む
段落を構成する要素を取得する
Wordドキュメントからすべてのテキストを取得する
テキストのスタイルを設定する
新規Wordドキュメントを作成してテキストを入力する
Wordドキュメントにテキストを追加する
見出しを追加する
改ページを入れる
第8章 インターネットアクセス
8-1 Webデータの取得
外部モジュール「Requests」を利用してWebに接続する
Yahoo! JAPANにアクセスする
Webデータがやり取りされる仕組みを理解する
レスポンスメッセージからデータを取り出す
8-2 Web APIの利用
Web APIで役立つデータを入手する
Column Twitterの開発者向けサイト
気象データのWebサービス「OpenWeatherMap」を利用する
5日間/3時間ごとの気象データを取得するためのURLを作る
Column JSONとXML
「OpenWeatherMap」から現在の気象データを取得する
「OpenWeatherMap」から3時間ごとの天気予報を取得する
向こう5日間の12時間ごとの天気予報を教えるプログラムを作る
MediaWikiから検索情報を取得する
8-3 Webスクレイピング
Webスクレイピングとは
スクレイピング専用のBeautifulSoup4モジュールをインストールする
「Yahoo!ニュース」のRSSをスクレイピングする
Column datetimeモジュール
第9章 テキストマイニング
9-1 テキストの処理
同じ文字列かどうかを調べる
文字列が含まれるかどうかを調べる
指定した文字列で始まっているか、または終わっているかを調べる
指定した文字列で始まっていないか、または終わっていないかを調べる
文章の冒頭と末尾が一致するかどうかを調べる
文章の冒頭、または末尾が指定した文字列と一致するかを調べる
9-2 テキストファイルの処理
テキストファイルのセンテンスを1つずつ出力する
ファイルに保存されたすべてのセンテンスを、
末尾の改行を含まずに出力する
テキストファイルの空白行をスキップして出力する
特定の文字列を含むセンテンスだけを出力する
特定の文字列を含むセンテンスがあるかどうかだけを調べる
段落ごとに連番をふる
文章の中から指定した段落まで抽出して表示する
英文を読み込んで単語リストを作る
英文を読み込んで重複なしの単語リストを作る
単語の出現回数をカウントして頻度表を作る
単語の出現回数順に頻度表を並べ替える
ファイルのエンコード方式をUTF-8に変換する
Column エンコードとデコード
9-3 形態素解析入門
形態素解析で文章を品詞に分解する
形態素解析モジュール「Janome」の導入
「Janome」で形態素解析を実行する
形態素解析を行うanalyzerモジュールを作る
テキストファイルから1行ずつデータを読み込む
OSごとの改行モードの取り扱いを知る
文章から名詞を取り出してファイルに蓄積する
多重forループからの脱出コードを関数化する
9-4 マルコフモデルによる文章の創出
文章のつながり
マルコフ連鎖、マルコフモデルとは
マルコフ辞書の実装
Column もとになる文章量が少ないと文章が作れないことがある
9-5 チャットプログラムの作成
チャットプログラムを作成する
入力した文字列に反応するようにする
9-6 形態素解析を利用したテキストマイニング
テキストファイルを読み込んで名詞の頻度表を作る
第10章 GUI
10-1 Tkinterライブラリ
プログラムの「画面」を作る(Tkinterライブラリ)
ウィンドウのサイズを指定する
ボタンを配置する位置を指定する
ウィンドウにボタンを配置する
ボタンを作ってgrid()メソッドで配置する
ボタンを作ってplace()メソッドで好きな位置に配置する
ボタンがクリックされたときに処理を行う
チェックボタンで選択できるようにしよう
ラジオボタンを使って1つだけ選択できるようにしよう
メニューを配置する
メッセージボックスの表示
明日の予定を決めてくれるプログラムを作る
10-2 Qt DesignerでGUIを開発
PyQt5ライブラリとQt DesignerでGUIアプリを開発!
Qt Designerを起動する
メインウィンドウを作成して保存する
リストを配置してプロパティを設定する
ラインエディットを配置してプロパティを設定する
プログラム実行用のボタンを配置してプロパティを設定する
ボタンクリックでプログラムを駆動する仕組みを作る
ラベルを配置してプロパティを設定する
リソースからイメージを読み込んでウィジェットに表示する
メニューを設定する
メニューアイテムの選択でプログラムを駆動する仕組みを作る
XMLデータをPythonモジュールにコンバートする
(コマンドラインツール「pyuic5」)
コンバート専用のプログラムを作る
リソースファイル(.qrc)をPythonにコンバートする
GUIプログラムの起点になるモジュールを作成する
応答フレーズを生成する仕組みをプログラムに組み込む
Column Qt Designerの公式マニュアル
GUIプログラムをダブルクリックで起動できるようにする
第11章 Jupyter Notebookによる統計分析
11-1 NumPyの配列(ベクトル)を使う
NumPyで配列(ベクトル)を作成する
ベクトルのスカラー演算
Column ベクトル
ベクトルの累乗、平方根を求める
ベクトルのサイン、コサイン、タンジェントを求める
サイン、コサイン、タンジェントの逆関数を求める
ラジアンと度を相互変換する
切り捨て、切り上げ、四捨五入を行う
平均、分散、最大値、最小値を求める
ベクトル同士の四則演算
ベクトルの要素同士の積を求める
ベクトルの内積を求める
11-2 NumPyの行列を使う
多次元配列で行列を表現する
行列の基礎知識
行列のスカラー演算を行う
行列の成分にアクセスする
行列の成分を行ごと、列ごとに集計する
行列の要素同士を加算、減算する
行列の要素同士の積を求める
行列の積を求める
ゼロ行列と単位行列の積の法則
行と列を入れ替えて転置行列を作る
逆行列を求める
11-3 データフレーム
データフレームを作成する
データフレームの列を取得する
データフレームから行を抽出する
データフレームに行を追加する
データフレームに列を追加する
CSVファイルをデータフレームに読み込む
散布図を描く
基本統計量を求める
基本統計量を一括で求める
11-4 相関分析
グラフを描いてデータ間の関連性を知る
2つのデータの関係の強さを表す値を求める
11-5 線形回帰分析
線形単回帰分析とは
線形単回帰分析を実行する
線形重回帰分析とは
重回帰分析にかける変量の相関を調べる
売上と相関がある3つの要因から売上額を予測する
第12章 Pythonでディープラーニング
12-1 MNISTデータセットの手書き数字をディープラーニング
Pythonでディープラーニングとはどういうことなのか
ディープラーニングの考え方をすばやく学ぶ
機械学習ライブラリ「TensorFlow」をインストールする
手書き数字「MNISTデータセット」の中身を見る
MNISTデータセットを入力できるように前処理する
MNIST用の隠れ層をプログラミングする
ドロップアウトを実装する
MNIST用の出力層をプログラミングする
バックプロパゲーションを実装する
作成したニューラルネットワークの構造を出力する
MNISTデータをディープラーニングする
MNISTデータの学習結果を評価する
12-2 ファッションアイテムの画像認識
Fashion-MNISTデータセットを用意する
Fashion-MNISTを前処理する
Fashion-MNISTをニューラルネットワークでディープラーニングする
12-3 畳み込みニューラルネットワークを利用した画像認識
畳み込みニューラルネットワークとは
ゼロパディングとは
プーリングとは
プーリング層を備えたCNNを構築する
CNNでFashion-MNISTをディープラーニングする
12-4 一般物体認識のためのディープラーニング
カラー画像を10のカテゴリに分類
Column CIFAR-10を公開しているサイト
KerasでCIFAR-10をダウンロードする
CIFAR-10のCNNをプログラミングする
CIFAR-10をディープラーニングする
第13章 Matplotlibによるデータの視覚化
13-1 折れ線グラフの描画
「matplotlib.pyplot」をインポートしてグラフを描画する
ラインの書式を設定する
複数のラインを表示する
13-2 散布図
散布図を作成する
マーカーのスタイルを設定して2色のダイヤモンド型にする
13-3 棒グラフの描画
棒グラフを作成する
バーの間の隙間をなくす
バーのカラーとエッジラインのスタイルを設定する
エラーバーを表示する
13-4 円グラフの描画
円グラフを作成する
Column フォーマット指定子
円グラフの開始角度を90度にして時計回りに表示する
円グラフの要素のカラー、エッジラインの幅とカラー、
ラベルテキストのカラーを設定する
円グラフの特定の要素を切り出して目立たせる
13-5 タイトル、軸ラベルの表示
グラフタイトルと軸ラベルを表示する
x軸とy軸に独自の目盛ラベルを表示する
13-6 グラフ領域を分割して複数のグラフを出力
タテ2段で2つのグラフを表示する
ヨコ2段で2つのグラフを表示する
4つのマス目に4種類のグラフを表示する
グラフエリアのサイズを指定して3種類のグラフをプロットする
サブプロットエリアの配置を調整する
13-7 グラフ要素の操作
グラフオブジェクトを生成して操作する
subplot()で直接Axesオブジェクトを配置する
Axes.set()でAxesオブジェクトの外観を設定する
サブプロットを配列形式で操作する
グリッドのAxesを行ごとに個別のリストにする
垂直線と水平線を描画する
軸をグラフエリア中心に移動する
軸を反転する()
曲線下の一定の区間面積をPolygonで塗りつぶす
13-8 ヒストグラム
正規分布のヒストグラムを作成して確率密度のラインをプロットする
異なる幅のビンを並べて自動的に集計し、プロットする
複数のデータを1つのヒストグラムにまとめる
13-9 3Dグラフのプロット
3Dグラフをプロットする
f(x,y)=x2+y2をプロットする
2Dデータのヒストグラムを3D化してプロットする
13-10 画像のプロット
グレースケールの画像をプロットする
PNG形式の画像をプロットする
13-11 Seabornを利用したグラフ作成
Seabornを使って散布図を描く
Seabornを使って折れ線グラフを描く
Amazonで詳しく見る
紹介文
人気の絵本シリーズにPython登場、人気の言語を手早くマスター
手軽に学びたい人の味方!人気の絵本シリーズにPython登場!
Pythonはコンパイラを使わずに実行できるインタープリタ型の言語でありながら、データ分析など最新のコンピューティングの現場でひろく活用されています。
本書では「プログラミングについて何も知らないこと」を前提に、基本からPythonを解説し、さらにリストや関数といった特徴ある機能を紹介していきます。また、章末でプログラミングサンプルを紹介するなど、実戦的な内容も含まれています。
本書には次のような特長があります。
・絵を多用し、短い解説で絵本のようにビジュアルに理解することができます
・2ページを単位とした説明、基礎に絞り込んだ内容でスピーディに学習できます
・予備知識は不要。「プログラミングとはなにか」から入門できます
・Pythonの特徴などや実行の仕組みなど、知識として知っておきたい事柄もフォロー
・クラス/オブジェクトの基本も解説。オブジェクト指向の基礎にも入門できます
【翔泳社の「絵本」シリーズのラインナップをアップデート】
翔泳社の「絵本シリーズ」は、豊富なイラストと簡潔な解説でコンピュータ技術に入門できる初心者向けのシリーズです。言語/技術の超初心者や手軽に習得したい方に最適な入門書です。
新しい「絵本シリーズ」では、旧来の分かりやすさ、親しみやすさ、基礎に徹した内容というコンセプトはそのままに、Web/ネットが全盛となった現在のコンピュータ技術の潮流に合わせた解説を心掛けます。『Cの絵本』『Javaの絵本』を皮切りにラインナップを順次刷新、さらに新しい仲間を増やしてラインナップを充実させていきます。
Pythonの勉強をはじめる前に
第1章 基本的なプログラム
第2章 計算の演算子
第3章 リスト
第4章 制御文
第5章 関数
第6章 文字列
第7章 ファイルと例外処理
第8章 クラスとオブジェクト
付録
Amazonで詳しく見る
紹介文
詰め込みすぎないわかりやすい解説。コレならわかる!できる!
1 Pythonでプログラミングを始めよう
2 制御構文を理解しよう
3 関数の使い方をマスターしよう
4 オブジェクト指向を理解しよう
5 クラスの使い方をマスターしよう
6 モジュールを利用しよう
7 ファイルの読み書きと例外処理を行おう
8 アプリケーションを作成しよう
Amazonで詳しく見る
紹介文
ミニゲームを作りながら、人工知能で話題のPythonを楽しく覚えよう!Windows 7/8/8.1/10対応。
1 Pythonをはじめよう
2 まずは簡単なことからやってみよう
3 ウィンドウを作ってみよう
4 条件分岐でプログラムに判断させよう
5 たくさんのデータをパパッと料理しよう
6 ロールプレイング風迷路を作ってみよう
7 モンスターと戦闘しよう
8 アドベンチャーゲームを作ろう
Amazonで詳しく見る
紹介文
Pythonプログラミングを全力で学ぶならこの1冊!Pythonをこれから学ぶビギナーから、基礎力を得て現場で実践したい方まで、確実なスキルアップをはかれます。
1 準備:Python3をはじめよう(Python3の準備
プログラムを試してみよう)
2 基礎:Pythonの基本構文を学ぶ(値と変数
標準ライブラリ
条件分岐、繰り返し、例外処理
リスト
タプル
セット(集合)
辞書
ユーザ定義関数
関数の高度な利用
クラス定義)
3 応用:科学から機械学習まで(テキストファイルの読み込みと書き出し
グラフを描く
NumPyの配列
機械学習を試そう)
Amazonで詳しく見る
紹介文
大手メーカーで活躍してきたクリエイターが
ゲーム開発のノウハウをゼロから教えます!
本書はPythonを使用した、ゲームプログラミングの解説書です。
類書とは異なり、終始一貫「ゲーム開発」に焦点を当て、
今書いているプログラムがどのような"動き"に反映され、
どのような"面白さ"に結びつくのかを、正しく学ぶことができます。
一般的なソフト開発ではなく「ゲーム開発の作法」をきちんと学ぶことによって、ゲーム好きな読者の皆さんの就職や趣味といったリアルな世界がより充実してくれることを願い、出版されました。
【読者対象】
○ゲーム業界に就職したい学生・社会人
○SNSや同人で自作ゲームを発表したい方
○落ち物パズル、RPGの作り方を知りたい方
○一般ソフトとゲーム制作の違いを知りたい方
○Pythonを始めたけど作るものが浮かばない方
……高校生ぐらいから読めます!
【本書の特長】
○業界の基礎知識やプログラマーの役割からきちんと解説
○Pythonの基本文法をしっかり解説、プログラミング初心者も安心
○プログラム1行ごとに説明を付けており、理解しやすい
○豊富な図解とイラストを用い、イメージで理解できる
○開発に必要な素材はすべて無償ダウンロードできる
クイズ、すごろく、おみくじ、診断アプリ、迷路、自動生成ダンジョン、落ち物パズル、本格PRGなど……簡単なミニゲームから難しいものまで幅広く教材を用意しています。
さらに、読者特典として3つのおまけゲームもプレゼント!
すべてのゲームをつくり終えた時、あたなのプログラミングスキルは何倍にも向上しているに違いありません。
本書を機に、ぜひゲームプログラミングの世界に飛び込んでみてください!
Prologueゲームプログラマーになろう!
Chapter 1 Pythonのインストール
Lesson 1-1 Pythonとは?
Lesson 1-2 Pythonのインストール
Lesson 1-3 Pythonを起動しよう
COLUMN ゲームクリエイターって儲かるの?
Chapter 2 Pythonを始めよう
Lesson 2-1 計算してみる
Lesson 2-2 文字列を出力する
Lesson 2-3 カレンダーを出力する
Lesson 2-4 プログラミングの準備
Lesson 2-5 プログラムを記述しよう
Lesson 2-6 入出力命令を知ろう
Lesson 2-7 プログラムの記述の仕方
COLUMN ゲームが完成するまで
Chapter 3 プログラミングの基礎を学ぼう
Lesson 3-1 変数と計算式
Lesson 3-2 リストについて
Lesson 3-3 条件分岐について
Lesson 3-4 繰り返しについて
Lesson 3-5 関数について
COLUMN ゲームの開発費はどれくらい? その1
Chapter 4 importの使い方
Lesson 4-1 モジュールについて
Lesson 4-2 カレンダーの復習
Lesson 4-3 日時を扱う
Lesson 4-4 乱数の使い方
COLUMN RPGで逃げるのに失敗する確率
Chapter 5 CUIでつくるミニゲーム
Lesson 5-1 CUIとGUI
Lesson 5-2 クイズゲームを作る
Lesson 5-3 すごろくを作る
Lesson 5-4 消えたアルファベットを探すゲームを作る
COLUMN ゲームの開発費はどれくらい? その2
Chapter 6 GUIの基礎1
Lesson 6-1 GUIについて
Lesson 6-2 ラベルを配置する
Lesson 6-3 ボタンを配置する
Lesson 6-4 キャンバスを使う
Lesson 6-5 おみくじを引くソフトを作る
COLUMN キャンバスに図形を表示する
Chapter 7 GUIの基礎2
Lesson 7-1 テキスト入力欄を配置する
Lesson 7-2 複数行のテキスト入力欄を配置する
Lesson 7-3 チェックボタンを配置する
Lesson 7-4 メッセージボックスを表示する
Lesson 7-5 診断ゲームを作る
COLUMN RGBによる色指定
Chapter 8 本格的なゲーム開発の技術
Lesson 8-1 リアルタイム処理を実現する
Lesson 8-2 キー入力を受け付ける
Lesson 8-3 キー入力で画像を動かす
Lesson 8-4 迷路のデータを定義する
Lesson 8-5 二次元画面のゲーム開発の基礎
COLUMN ゲームソフトを完成させるには
Lesson 8-6 ゲームとして完成させる
COLUMN デジタルフォトフレームを作る
Chapter 9 落ち物パズルを作ろう!
Lesson 9-1 ゲームの仕様を考える
Lesson 9-2 マウス入力を組み込む
Lesson 9-3 ゲーム用のカーソルの表示
Lesson 9-4 マス上のデータを管理する
Lesson 9-5 ブロックを落下させるアルゴリズム
Lesson 9-6 クリックしてブロックを置く
Lesson 9-7 ブロックが揃ったかを判定するアルゴリズム
Lesson 9-8 正しいアルゴリズムを組み込む
Lesson 9-9 タイトル画面とゲームオーバー画面
Lesson 9-10 落ち物パズルの完成
COLUMN winsoundで音を鳴らす
Chapter 10 Pygameの使い方
Lesson 10-1 Pygameのインストール
Lesson 10-2 Pygameのシステム
Lesson 10-3 画像を描画する
Lesson 10-4 図形を描画する
Lesson 10-5 キー入力を行う
Lesson 10-6 マウス入力を行う
Lesson 10-7 サウンドを出力する
COLUMN Pygameで日本語を使う
Chapter 11 本格RPGを作ろう! 前編
Lesson 11-1 ロールプレイングゲームについて
Lesson 11-2 迷路を自動生成する
Lesson 11-3 ダンジョンを作る
Lesson 11-4 ダンジョン内を移動する
Lesson 11-5 戦闘シーンを作る その1
Lesson 11-6 戦闘シーンを作る その2
Lesson 11-7 戦闘シーンを作る その3
COLUMN ゲームの画面演出 287
Chapter 12 本格RPGを作ろう! 後編
Lesson 12-1 ロールプレイングゲームの全体像
Lesson 12-2 ファイルのダウンロードとプログラムの実行
Lesson 12-3 プログラムリスト
Lesson 12-4 プログラムの詳細
COLUMN Pythonでのファイル処理
Chapter 13 オブジェクト指向プログラミング
Lesson 13-1 オブジェクト指向プログラミングについて
Lesson 13-2 クラスとオブジェクト
Lesson 13-3 tkinterを使ってオブジェクト指向を学ぶ
Lesson 13-4 オブジェクト指向プログラミングをもっと学ぶ
COLUMN 筆者も苦労したオブジェクト指向プログラミング
Appendix 池山高校Python研究部
Intro ゲームをつくろう!
1つ目 一筆書き迷路ゲーム
2つ目 英単語学習ソフト
3つ目 ブロック崩し
Amazonで詳しく見る
紹介文
Pythonの作者自らが書き下ろした手引書。入門者がおさえておくべき機能やコンセプトを解説し、さらに特徴的な機能を多く紹介。
Python初心者必読のチュートリアルが3.9対応で登場!
Pythonの作者Guido氏自らが書き下ろした、Python入門者のための手引書です。Pythonの言語と、入門者がおさえておくべきシステムの基本的な機能やコンセプトを解説し、さらにPythonの特徴的な機能を数多く取り上げて紹介することで、この言語の雰囲気とスタイルをわかりやすくつかめるよう配慮しています。5年ぶりの改訂版で、Python3.9.0に対応しました。入門者必読の書です。
Pythonの作者自らが書き下ろした手引書。入門者がおさえておくべき機能やコンセプトを解説し、さらに特徴的な機能を多く紹介。
Amazonで詳しく見る
紹介文
RAPソフトに頼らなくても、業務は自動化できる!
「これ、毎日同じ作業をしているけど、自動化できないかな?」
「この作業、手でやってたらとても終わらない…どうにかできないかな?」
そんな声にお答えするのが本書です。
本書では、Pythonを使って、ビジネス上よく起きるさまざまな作業を自動化します。
サンプルが用意されているので、実際にプログラムを動かして試してみることができます。
Pythonの文法も要点を押さえて説明してあるので、自分の作業に合わせてカスタマイズしやすくなっています。
1章では、Pythonをインストールして自動化を行うための環境を整えます。簡単なプログラムを通して、プログラムを実行するコツをつかみます。
2章、3章では、Excelへのデータ入力、データ抽出、書式設定、請求書などテンプレートがあるファイルへのデータ流し込み、Wordのテンプレートへのデータ流し込み、PDF化など、一般的なオフィス文書の自動化を扱います。基本的にはopenpyxlモジュールを使い、後半ではpython-docxやpywin32も使います。
4章では、Webブラウザからのデータ取り込み、一括ダウンロード、パスワードがかかっているサイトへのログインなど、Webブラウザの操作自動化について説明します。「Beautiful Soup」モジュールやSeleniumを使います。
5章では、メールの送信、LINEやTwitterなどのSNSの操作を扱います。また、即時に実行するのではなく、日々の決まった時間や先の日付けで実行したいスケジューリングの設定について説明します。
6章では、ダイアログを出してユーザーから言葉やファイルの入力を得る方法や、正規表現の使い方、プログラムをデスクトップアプリにする方法、他の人が実行しやすい形でプログラムを渡す方法、マウスやキーボードの操作を自動化する方法など、便利な情報を詰め込んでいます。TkinterやPyInstallerを使います。
Pythonの知識の浅い方でも使いやすいように、インストール方法から、実行方法までを丁寧に説明しています。また、巻末には文法をまとめたAppendixを入れています。
実行環境としては、Windows、macOS、Linuxに対応していますが、項目によっては一部OSにしか対応していないものもありますのでご注意ください。
Python3.x対応。
※他の人が実行しやすい形でプログラムを渡す目的で使うPyInstallerは、Python3.5~3.7対応です。
Chapter1 Pythonで仕事を自動化しよう
Chapter2 Excel作業を自動化しよう
Chapter3 Excelの高度な作業も自動化しよう
Chapter4 Webブラウザの自動化/スクレイピング
Chapter5 メールやLINE/SNSを自動化しよう
Chapter6 そのほかの便利な自動化テクニック
Appendix Pythonの基本文法の紹介
Amazonで詳しく見る
紹介文
■Python初心者に学んで欲しい文法を過不足なく掲載!
それぞれの項目について、練習問題を掲載しており、読むだけではなく実際にコードを書くことでより深くPythonの理解をすることができます。
■豊富なサンプル集
機械学習、ディープラーニング、科学技術計算といった、Pythonがよく利用されている分野についての解説を掲載しています。
いろいろな分野のサンプルコードを動かすことだけでなく、機械学習などの理論の概要を知りたい方にもオススメです。
【本書の対象読者】
・プログラミング未経験だが、Pythonを学ぶ意欲があり、より実践的な力を身に付けたいと思っている人
・プログラミング経験者でPythonの入門書を探しているが、一方でゴールのレベルが低すぎる書籍は避けたいと思っている人
・多くのサンプルコードに触れ、Pythonでどんなプログラムが書けるのか学んでみたいと思う人に向けた、Pythonの入門書が欲しい人
Chapter01 プログラミング言語Python
1.1 Pythonとは?
1.2 プログラミングとは?
1.3 Pythonをインストールする
1.4 Python文法まずはここから
1.5 まとめ
Chapter02 Pythonの文法 変数から文字列まで
2.1 変数
2.2 数値
2.3 文字列
2.4 まとめ
Chapter03 Pythonの文法 関数からリストまで
3.1 関数とは
3.2 リスト
3.3 まとめ
Chapter04 Pythonの文法 制御構文
4.1 制御構文
4.2 まとめ
Chapter05 Pythonの文法 関数の定義と変数のスコープ
5.1 関数の定義
5.2 変数のスコープ
5.3 まとめ
Chapter06 Pythonの文法 タプルからジェネレータまで
6.1 タプル
6.2 集合
6.3 タプル
6.4 辞書
6.5 内包表記
6.6 ジェネレータ式
6.7 まとめ
Chapter07 Pythonの文法 オブジェクト指向と発展的な機能
7.1 オブジェクト指向プログラミング
7.2 例外処理
7.3 発展的な機能
Chapter08 標準ライブラリを使ってみよう
4.1 モジュール
4.2 標準ライブラリ
4.3 まとめ
Chapter09 色々なプログラミングをしてみよう
9.1 配布ファイルの使い方
9.2 パッケージ
9.3 機械学習
9.4 ニューラルネットワーク
9.5 ディープラーニング
9.6 NumpyとMatplotlibによる科学技術計算
9.7 SciPyとMatplotlibによる科学技術計算
9.8 Webアプリケーションの作成
9.9 まとめ
Amazonで詳しく見る
紹介文
Python業界の第一線で活躍する執筆陣によるデータ分析エンジニアに求められる技術が最速で身に付く入門書
データ分析エンジニアに求められる技術の基礎が最短で身に付く
ビッグデータの時代といわれ始めて数年が経過しました。
デバイスの進化により多くの情報がデジタル化され、
それらのデータを活用しようとデータ分析エンジニアに注目が集まっています。
この書籍では、データ分析において、
デファクトスタンダードになりつつあるプログラミング言語Pythonを活用し、
データ分析エンジニアになるための基礎を身に付けることができます。
書籍ではデータ分析エンジニアになるために必須となる技術を身につけていきます。
・データの入手や加工などのハンドリング
・データの可視化
・プログラミング
・基礎的な数学の知識
・機械学習の流れや実行方法
本書で学べること
・Pythonの基本的な文法
・データフォーマットについて
・データの前処理技術
・データの可視化技術
・既存アルゴリズムでの機械学習の実装
対象読者
データ分析エンジニアを目指す方
目次(抜粋)
第1章 データ分析とは
第2章 Pythonと環境
第3章 数学の基礎
第4章 ツールの基礎
第5章 応用:データ収集と加工
はじめに
謝辞
本書の対象読者と構成について
Chapter1 データ分析エンジニアの役割
1.1 データ分析の世界
1.2 機械学習の位置づけと流れ
1.3 データ分析に使う主なパッケージ
Chapter2 Pythonと環境
2.1 実行環境構築
2.2 Pythonの基礎
2.3 Jupyter Notebook
Chapter3 数学の基礎
3.1 数式を読むための基礎知識
3.2 線形代数
3.3 基礎解析
3.4 確率と統計
Chapter4 ライブラリによる分析の実践
4.1 NumPy
4.2 pandas
4.3 Matplotlib
4.4 scikit-learn
Chapter5 応用:データ収集と加工
5.1 スクレイピング
5.2 自然言語の処理
5.3 画像データの処理
INDEX
奥付
Amazonで詳しく見る
紹介文
Pythonはオブジェクト指向型の言語で、初学者向けでも文法解説だけでは物足りないと感じることが多いでしょう。本書では「チャットボットの開発を軸に文法的なものを学ぶ」スタイルをメインに、巻末ではディープラーニングについても学ぶことができます。
Anaconda、Jupyter Notebook、Spyderを使用し、Qt Designerでの解説をしていますので、それらの使い方も身に付きます。
第3版となる本書では、Web API、ライブラリを最新のものに対応するとともに、画像認識についてより高度な手法を追加しています。
Chapter 0 いま、なぜPythonなのか
0.1 そもそもPythonって何のためのものなの?
0.1.1 まずは「Pythonって何?」
0.1.2 Pythonって他のプログラミング言語と何が違うの?
Pythonは書いたらすぐに実行できる「インタープリター型言語」
Memo プログラミング言語
0.2 PHP、Ruby、Perlがあるのに、なぜPythonなの?
0.2.1 日本語対応もしっかり!
0.3 どうしてPythonはプログラミングの学習に向いてるの?
0.3.1 Pythonが褒められる2つの理由
Pythonには面倒な手続きが少ない
「プログラマーの頭」になるための近道
0.4 Pythonのコードが読みやすいって、どんなふうに?
0.4.1 階乗を求めるプログラムで比べてみよう
0.5 結局のところPythonで何が作れるの?
0.5.1 具体的にソフトウェアとしてはどんなものが作られているの?
統合開発環境
Memo Pythonは書いたらすぐに実行できるインタープリター型言語
Webフレームワーク
科学/数学用のライブラリ
ディープラーニング用のライブラリ
0.6 Pythonが使えると、この先どんなメリットがあるのかな?
0.6.1 Pythonのイイところ 1「ビッグな実績があるんです」
0.6.2 Pythonのイイところ 2「強力なフレームワークがいっぱいあるんです」
0.6.3 Pythonのイイところ 3「やっぱ需要はJavaの方が上でしょ?」
Onepoint 実は「儲かる」Pythonプログラマー
0.7 ところでPythonでアプリを作って何がウレシイの?
Pythonにはイイことがいっぱい
0.8 Pythonプログラミングをゼロからスタート!
なるべく順番に読んでほしいけど、好きなところから始めてもかまいません!
Chapter 1 Pythonを使えるようにしてプログラミングを始めよう(環境構築とソースコードの入力)
1.1 PythonをダウンロードしてPCにインストールしよう
1.1.1 PythonをダウンロードしてWindowsマシンにインストールしよう
Python3.x.xのダウンロードとインストール
1.2 IDLE (Python GUI)を起動してPythonを動かしてみよう
1.2.1 Pythonの開発ツール「IDLE」でプログラムを実行してみよう
IDLEを起動して「Hello world!」プログラムを実行する
Memo Pythonのバージョン
Memo Macへのインストール
1.2.2 もっとプログラムらしいことをやってみよう
Pythonのプログラム用ファイルを作る
Memo 外部ライブラリ
保存したプログラムを実行する
1.2.3 さらにプログラムらしいことをやってみよう(アプリの画面を作る)
専用の画面を持つプログラムを作ってみる
Hint 本書で使う標準ライブラリ以外のライブラリ
Memo Pythonのロゴ
1.3 Anacondaをインストールして開発環境を用意する
1.3.1 Anacondaのダウンロードとインストール
macOSの場合
1.3.2 アプリを開発するための仮想環境を構築しよう
好きな名前を付けて仮想環境を構築しよう
1.3.3 Jupyter Notebookことはじめ
Jupyter Notebookを仮想環境にインストールする
Notebookを作成してソースコードを入力してみよう
Notebookを保存して改めて読み込んでみよう
Memo Jupyter Notebookのコマンド
Jupyter Notebookを便利に使う
1.3.4 Spyderことはじめ
Spyderを仮想環境にインストールする
Chapter 2 Pythonプログラムの材料(オブジェクトとデータ型)
2.1 データのかたち(データ型)
2.1.1 プログラムとデータは別のもの(リテラル)
値(リテラル)の姿
Memo プログラムを書くときにハマりやすいこと
2.1.2 整数も小数も正も負も(数値型)
数値型
2.1.3 文字も文字列も(文字列型)
文字列リテラル
Hint 「'」と「"」のどっちがいい?
2.1.4 データではない文字列(コメント)
ソースコードのメモ書き「コメント」
2.1.5 YesかNoだけ(ブール〈bool〉型)
真偽リテラル
2.1.6 「値そのものが存在しない」は「None」
何もないことを示す特殊なリテラル「None」
2.2 オブジェクトと変数
2.2.1 オブジェクトを捕まえろ!
プログラムのデータはすべてオブジェクトになる
オブジェクトには関数(メソッド)が結び付けられている
2.2.2 3回続けてあいさつしてみよう??変数への代入
代入した値のデータ型は変更できないけれど値そのものを書き換えることはできる
Memo 変数名を付けるときのルール
Hint 変数名の命名規則
2.3 変数を使っていろんな計算をする
2.3.1 「入力した値を2倍にしてあげるよ」(算術演算子)
計算をさせるための記号、算術演算子
変数を使って演算する
単項プラス演算子(+)、単項マイナス演算子(?)
2.3.2 「x='僕の名前はPythonです'」(代入演算子)
代入演算子による値の代入
複合代入演算子による式の簡略化
多重代入
2.3.3 どこから手を付ける?(演算子の優先順位)
演算子には優先順位があるけれど()でコントロールできる
Memo 演算子の優先順位
2.4 文字列や数値をPythonの道具で自在に操ろう(関数、メソッド)
2.4.1 Pythonの道具(関数、メソッド)
print()関数ってどこから呼んできたの?
2.4.2 整数型への変換と浮動小数点数型への変換
整数以外の値をint型に変換する
浮動小数点数型(float型)への変換
Hint リテラルも変数もみんなオブジェクト
Hint 小数を含むstr型の「数字」をfloat型にする
2.4.3 え! 文字が逃げる?(エスケープシーケンス)
自動エコーとprint()関数による出力結果の違い
「\」で文字をエスケープすれば改行やタブを入れられる
2.4.4 「"こん" + "にちは"」「ようこそ *4」(文字列の連結と繰り返し)
文字列を連結したり繰り返したりする
2.4.5 会話文の中から必要な文字だけ取り出そう
[ ]で1文字抽出する
[:]や[: :]で文字列を切り出す
2.4.6 関数やメソッドを使えば文字列の分割、結合、置換、いろいろできる
len()関数で文字列の長さを調べる
split()メソッドで文字列を規則的に切り分ける
join()メソッドで文字列をジョイント!
replace()メソッドで文字列の一部を置き換える
format()メソッドで文字列を自動作成
Tips 逆さ言葉を答えてみよう
2.4.7 初恋したのはいつ?(input()関数)
コンソール上で入力された文字列はinput()関数で取得
2.4.8 あなたの標準体重は?
BMI(体格指数)を使って標準体重を計算してあげよう
Memo そのほかの便利な文字列操作関数
Chapter 3 条件分岐と繰り返し、関数を使う
3.1 テニスの攻撃パターンをシミュレートする
3.1.1 同じ技を10回繰り出す(forによる繰り返し)
スマッシュを連続10回繰り出す
3.1.2 2つの技を交互に繰り出す(ifによる条件分岐)
スマッシュとストロークを交互に繰り出す
Memo rangeオブジェクト(1)
Memo True/Falseと真/偽
3.1.3 3つの技を織り交ぜる(if...elif...else)
ifにelifを加えて条件を2つに増やす
ifの条件式を書く順番に気を付けよう
3.1.4 攻撃のパターンをランダムにしよう
randomモジュールを使って疑似乱数を発生させる
3.2 もう1つの繰り返し技(whileによる繰り返し)
3.2.1 条件がTrueの間は繰り返すよ
スマッシュを連続10回繰り出す
3.2.2 ピティナ、入力された言葉を再生する
相手の言葉をそのまま再生、'さよなら'で終了
3.3 リスト
3.3.1 4種類のストロークを順に繰り出す(リスト)
リストで複数のオブジェクトをまとめて管理
インデックシング
スライス
イテレーション
リストの更新
Memo rangeオブジェクト(2)
2つのリストをforで処理してみる
リストのリスト
Memo リストの操作
リストの中に要素製造装置を入れる(内包表記)
3.3.2 いわゆる「定数リスト」(タプル)
タプルの使い方
3.4 辞書と集合
Memo リスト要素をランダムに抽出する
3.4.1 ボールを打ったら音を出す(名前と値のペア)
辞書(dict)型
イテレーションアクセス
Memo 辞書に使えるメソッド
複数のシーケンスのイテレート
3.4.2 要素の重複を許さない集合
まずは集合を作ってみる
集合を使って重複した要素を削除する
3.5 装置を作る(関数)
3.5.1 呼び出すと擬音を付けてくれる関数
パラメーターの指定
デフォルトパラメーター
Memo デフォルトパラメーターの使いどころ
Hint リストをデフォルトパラメーターにするときの注意
伸縮自在のパラメーター
キーと値がセットになったパラメーター
関数オブジェクトと高階関数
関数内関数とクロージャー
小さな関数は処理部だけの「式」にしてしまう(ラムダ式)
Onepoint ラムダ式はいろんなプログラミング言語で使われている
ジェネレーター
Onepoint ジェネレーターの内部的な処理
デコレーター
Chapter 4 オブジェクト、そして人工知能へ向けての第一歩
4.1 オリジナルのオブジェクト
4.1.1 「鬼コーチオブジェクト」登場!(クラスの作成)
オリジナルのクラス = オブジェクト
Memo 「オブジェクト」と「インスタンス」
4.1.2 「鬼コーチ」を呼んでこよう(オブジェクトの生成)
MyCoachクラスからMyCoachオブジェクトを作る
Memo メソッドと関数って何が違うの?
4.1.3 打ち返した回数を覚えておいてもらおう(クラス変数)
オブジェクト同士で共有するクラス変数
クラス変数を外部で初期化する
teach()をクラスメソッドに変更する
Memo メソッドやクラス変数を動的に追加する
4.1.4 大事な変数は隠しておこう(カプセル化)
インスタンス変数へのアクセスはすべてプロパティ経由にする
プロパティを使うことに意味はあるの?
4.2 ほんとに知能?
4.2.1 人工知能って何? えっ知能? 無脳?
絶妙トークは続く
ピティナ、君は人工ピーポー?
Pitynaオブジェクトの動作原理
Pitynaクラスと応答クラス
Memo ソースコードのドキュメント化
4.2.2 最初のピティナ
Spyderを起動して開発の準備をしよう
ピティナ、オウム返しボットバージョン
4.2.3 「オウム返し」+「ランダム応答」の2本立てで反応する(継承とオーバーライド)
ピティナ・バージョン2の実行モジュール「prototype.py」
Memo モジュール(Pythonファイル)の取り込み
Pitynaクラスのモジュール「pityna.py」
応答オブジェクトのモジュール「responder.py」
Memo RepeatResponderへの切り替え
Memo 自然言語処理って何をするの?
Chapter 5 ピティナのGUI化と[人工感情]の移植
5.1 GUI版ピティナ
5.1.1 ピティナをGUIモジュールに移植するよ
まずはQt Designerを呼んでこよう
5.1.2 メインウィンドウを作成してウィジェット(widget)を配置しよう
メインウィンドウを作成する
Hint UI画面の開発は手打ち派? それともUIデザイナー派?
ログを表示するためのリストを配置する
応答クラス名の表示/非表示切り替え用のラジオボタンを配置する
会話入力用のテキストボックスを配置する
メッセージの送信ボタンを配置する
ピティナの応答領域、ラベルを配置する
ピティナのイメージを表示する
メニューを使う
5.1.3 イベント駆動の仕組みを実装しよう
ボタンクリックで駆動する仕組みを作ろう
ラジオボタンのオン/オフで駆動する仕組みを作ろう
メニューの[閉じる]選択で駆動する仕組みを作ろう
5.1.4 XML?Pythonモジュールへのコンバート
コマンドラインツール「pyuic5」でコンバートする
コンバート専用のプログラムを作る
リソースファイル(.qrs)をPythonにコンバートする
Memo コマンドをAnacondaのターミナルから実行する
Attention リソースファイルの名前に注意!
5.1.5 GUI版ピティナプログラムの開発
プログラムの起点、「main.py」モジュールを用意する
UI画面を構築する「mainWindow.py」モジュールを用意する
ピティナの本体「pityna.py」を用意する
応答クラスの「responder.py」モジュールを用意する
すべてのモジュールを確認してピティナを起動してみよう
5.1.6 Responderをランダムに切り替える
応答時にRandomResponderとRepeatResponderをランダムに実行する
5.2 辞書を小脇に
5.2.1 ファイルのオープンと読み込み
ファイルの中身を読み込んで画面に出力してみよう
ピティナ、辞書を読み込む
Memo ユニバーサル改行コード
5.3 ピティナ、パターンに反応する
5.3.1 正規表現ことはじめ
正規表現のパターン
パターン辞書ファイルを作ろう
5.3.2 「パターン辞書」「ランダム辞書」「オウム返し」の三つどもえの反応だ!
match()とsearch
Dictionaryクラス
Responderクラス
Pitynaクラス
5.4 感情の創出
5.4.1 ピティナに「感情」を与えるためのアルゴリズム
感情の「揺れ」はパラメーター値を変化させる仕組みで実現
Onepoint 感情の揺れをパラメーター値で表す
感情の表現はイメージを取り換えることで伝える
5.4.2 パターン辞書の変更
パターン辞書のフォーマットを変更
Memo プログラムをダブルクリックで起動する方法
5.4.3 感情モデルの移植(Emotionクラス)
機嫌値を管理するEmotionクラス
5.4.4 感情モデルの移植(Dictionaryクラス)
パターン辞書の各行をPatternItemオブジェクトとして保持する
Memo 応答メッセージをテキストエディットに出力する
5.4.5 感情モデルの移植(Patternltemクラス)
パターンや応答例から機嫌変動値を取り出す
PatternItemクラスの__init__()によるオブジェクトの初期化
match()、choice()、suitable()の追加
5.4.6 感情モデルの移植(Responderクラス、PatternResponderクラス、Pitynaクラス)
ResponderクラスとRepeatResponder、RandomResponderの修正
パターン辞書を扱うPatternResponderクラスの修正
Memo ピティナプログラムのモジュール
5.4.7 感情モデルの移植(ピティナの本体クラス)
5.4.8 ピティナ、笑ったり落ち込んだり
プログラム開発前の準備
Qt Designerを起動してリソースファイルを作ろう
UI形式ファイルとQRC形式ファイルのコンバート
感情の揺らぎを表情で表す
Chapter 6 「記憶」のメカニズムを実装する(機械学習)
6.1 機械学習のススメ
6.1.1 まるごと覚える
辞書の学習を実現するためにクリアすべき課題
「学習メソッド」と「記憶メソッド」の追加
ピティナの本体クラスの修正
プログラム終了時の処理
6.2 形態素解析入門
6.2.1 形態素解析モジュール「Janome」の導入
「PyPI」はPythonライブラリの宝庫
pipコマンドで「Janome」をインストールする
Attention pipコマンドでのインストール
「Janome」で形態素解析いってみよう
Memo datetimeモジュール
6.2.2 キーワードで覚える
形態素解析を行うanalyzerモジュールを作ろう
ピティナの本体クラスを改造する
Dictionaryクラスを改造する
Memo Dictionaryクラスのメソッド
パターン辞書ファイルへの保存
Onepoint with文
PatternItemクラスのadd_phrase()とmake_line()
形態素解析版ピティナと対話してみる
6.3 テンプレートとして覚える
6.3.1 テンプレート学習用の辞書を作ろう
ピティナプログラムに必要なファイル一式
テンプレート辞書の構造
Attention ピティナの応答エリアをテキストエディットに変更する
6.3.2 Dictionaryクラスの改造
テンプレート辞書ファイルへの保存
Responderクラス群の新入り、TemplateResponderクラス
Pitynaクラスの変更
テンプレート学習を実装したピティナと対話してみる
Chapter 7 マルコフ連鎖で文章を作り出す
7.1 無限のサル定理をマルコフ連鎖で実証する
7.1.1 マルコフ連鎖を使って文章を生成する
単語がつながっていくときの法則
マルコフ連鎖、マルコフモデルとは
7.1.2 3単語プレフィックスのマルコフ辞書
「わたしが好きなプログラムの女の子です。」って?
7.1.3 マルコフ辞書の実装
形態素解析とファイルの読み込み
マルコフ辞書の作成
マルコフ辞書から文章を作り出す
Memo マルコフ連鎖
Memo もとになる文章量が少ないと文章が作れないことがある
重複した文章を取り除く
プログラムを実行して文章を作ってみる
Hint 著作権の切れた作品を公開する青空文庫
7.2 マルコフ連鎖を利用した会話ボットの作成
7.2.1 小説を題材にマルコフ連鎖で生成した文章で応答する
Markovクラス
7.2.2 入力した文字列に反応するようにしてみる
markov_botモジュールの改造
入力した内容にマルコフ辞書が反応するか確かめる
Memo マルコフ連鎖の活用例
7.3 ピティナ、マルコフ辞書を使う
7.3.1 マルコフ連鎖文を生成するMarkovクラス
Markovクラス
7.3.2 Pitynaクラスの改造
Pitynaクラス
7.3.3 Responderに新たに加わったサブクラスMarkovResponder
MarkovResponderクラス
7.3.4 DictionaryクラスにmakeMarkovDictionary()メソッドを追加
Dictionaryクラス
7.3.5 マルコフ辞書を手にしたピティナ、その反応は?
最後に処理の流れを確認しておこう
Chapter 8 インターネットアクセス
8.1 外部モジュール「Requests」を利用してネットに接続する
8.1.1 外部モジュール「Requests」
Requestsのインストール
8.1.2 Yahoo! JAPANにアクセスしてみよう
Requestsを利用してWebサイトにアクセスする
レスポンスメッセージからデータを取り出すメソッド
8.1.3 Web APIで役立つデータを入手
Webサービスを利用するためのWeb API
NTTドコモが提供しているWeb APIがオモシロイ
8.2 Requestsでネット上の情報を収集しよう
8.2.1 天気予報のWebサービス「OpenWeatherMap」を利用する
「OpenWeatherMap」の無料アカウントを取得する
5日間/3時間ごとの天気予報を取得するためのURLを作ろう
requestsのget()で天気予報をゲット!
Memo Weather APIの呼び出し回数の制限
8.2.2 ウィキ(Wiki)るプログラム
MediaWikiのAPI
Wikipediaから情報を収集しよう
8.2.3 「Yahoo!ニュース」のヘッドラインを取得してみよう
スクレイピング専用のBeautifulSoup4モジュール
Memo Twitterの開発者向けサイト
BeautifulSoup4で「Yahoo!ニュース」のRSSをスクレイピング
8.2.4 ピティナ、ネットにつながる
ピティナが今日から5日後までの天気を教えてくれる
mainWindowモジュールの改造
Webにつながるピティナを実行してみる
Memo 「OpenWeatherMap」で無料で利用できるWebサービス
Memo WebサービスのGoogle Colabを便利に使おう!
Chapter 9 ピティナ、ディープラーニングで画像認識に挑戦!
9.1 ディープラーニングと言えばPythonなのです
9.1.1 ディープラーニングっていったい何?
ニューラルネットワークのニューロン
9.2 認識率98%の高精度のニューラルネットワークを作る
9.2.1 Kerasライブラリをインストールして「手書き数字」の画像データを用意しよう
Kerasを仮想環境にインストールしよう
Memo TensorFlowのインストールができないときの対処法
Memo matplotlib.pyplot.imshow()
Memo Matplotlibのインストール方法
9.2.2 ニューラルネットワークをプログラミングする
入力層をプログラミングしよう
第1層(隠れ層)をプログラミングしよう
ドロップアウトを実装しよう
第2層(出力層)をプログラミングしよう
バックプロパゲーションを実装しよう
ディープラーニングを実行して結果を評価しよう
Memo ディープラーニングの結果が保存されたファイル
9.3 ディープラーニング版ピティナ
9.3.1 ディープラーニング版ピティナ開発の概要です
ディープラーニング版ピティナの開発手順
9.3.2 ピティナAIの画面の開発
フォーム(メインウィンドウ)のプロパティを設定する
3個のラベルを配置してプロパティを設定する
[閉じる]メニューの設定
Onepoint pixmapプロパティでリソースファイルからイメージを取り込む手順
UI画面をPythonモジュールにコンバートする
9.3.3 ピティナAIをプログラミングしよう
ピティナAIを起動するモジュール
UI画面を生成するモジュールを作成しよう
ほんとにAI? ピティナ本体をプログラミングする
ピティナAI、手書きの数字を認識する
9.4 ピティナ、ファッションアイテムを92%の高確率で識別する
9.4.1 ファッションアイテムのデータセットとは何ぞや?
9.4.2 畳み込みニューラルネットワークの仕組みをさらっと紹介
2次元フィルター
ゼロパディング
プーリング
訓練データにばかり適合するのを避けるための「正則化」
プーリング層とドロップアウトを備えた畳み込みネットワークの構築
9.4.3 Fashion-MNISTデータを読み込んで学習する
「LearnMNIST.py」を畳み込みネットワーク版に改造してファッションアイテムを学習する
9.4.4 ピティナの本体モジュール「pityna.py」を改造する
pityna.pyの一部を書き換える
ピティナAI、ファッションアイテムを判別する
Appendix 1 Pythonの標準ライブラリ
shutil(高水準のファイル操作)
timeit(小さなコード断片の実行時間計測)
collections(コンテナデータ型)
datetime(基本的な日付型と時間型)
Appendix 2 Pythonの外部ライブラリ
データベース
ゲーム開発
GIS(位置情報システム)
GUI
画像処理
Web開発
Amazonで詳しく見る
紹介文
富士通ラーニングメディアがご提供する人気の研修コース「Python入門」をベースに書籍化しています。
Pythonは、データ解析やAI(人工知能)など様々な用途に使えることから、近年最も注目されているプログラミング言語です。富士通ラーニングメディアでは、Pythonに関する研修コースをラインナップとしてご提供しており、その中でも入門レベルに相当し、人気ベスト10にもよく入る「Python入門」の研修コースの内容を今回書籍化しました。
セールスポイント
●人気の研修コース「Python入門」を書籍化!
富士通ラーニングメディアがご提供する人気の研修コース「Python入門」をベースに書籍化しています。富士通ラーニングメディアの研修コースの特徴である「実習が多い」という特性を活かし、実習中心の作りにしています。
●手を動かしてプログラムをどんどん作る!
基本的な構文(文法)のプログラム実践例を、手を動かしてどんどん作成し、実行結果を確認します。1行でもわからないと理解できなくなるのがプログラムの常です。本書ではプログラム1行1行すべての動きを解説しています。
●挫折しやすいエラーを徹底フォロー!
プログラミングはエラーで挫折する傾向があります。本書では「よく起きるエラー」を随所で取り上げ、エラーの発生場所やその意味、対処方法(どこを修正したらよいか)を徹底解説しているので、学習を1人でも進めていけます。
●実習問題で実力がバッチリ身に付く!
実習問題を随所でご用意しており、プログラミングの実力を深められます。「実行結果例」をみて、同じように動作するプログラムの作成に取り組みます。解答例はプログラム1行1行すべての動きを解説しており、理解が深まります。
本書をご利用いただく前に
第1章 Pythonの概要を理解する
1-1 プログラムの概要
1-1-1 プログラムとは
1-1-2 プログラミング言語とは
1-1-3 プログラムを開発する流れ
1-2 Pythonの概要
1-2-1 Pythonとは
1-2-2 Pythonの様々な利用シーン
第2章 Pythonの環境構築を行う
2-1 環境構築
2-1-1 Pythonのインストール
2-1-2 開発ツール
2-2 Pythonの体験操作
2-2-1 メモ帳とコマンドプロンプトでPythonの
プログラムを実行する
2-2-2 対話モードでPythonのプログラムを実行
する
2-2-3 Visual Studio CodeでPythonのプログラ
ムを実行する
第3章 Pythonの基本文法を学ぶ
3-1 記述規約
3-1-1 Pythonのプログラムが読みやすい理由
3-1-2 Pythonの書き方
3-1-3 Pythonのプログラムを読みやすくするた
めの規則
3-2 データの保持
3-2-1 変数とは
3-2-2 関数の呼び出しとデータ入力
3-2-3 リストとは
3-2-4 多次元リストとは
3-2-5 タプルとは
3-2-6 辞書とは
3-2-7 集合とは
3-3 演算子
3-3-1 演算子とは
3-3-2 算術演算子
3-3-3 累計代入演算子
3-3-4 文字列を連結する演算子
3-3-5 比較演算子
3-3-6 論理演算子
3-4 制御構造
3-4-1 制御構造の種類
3-4-2 条件分岐
3-4-3 繰り返し ~for文~
3-4-4 繰り返し ~while文~
3-4-5 繰り返し処理の制御
3-5 関数
3-5-1 関数とは
3-5-2 関数の定義
3-6 例外処理
3-6-1 例外処理とは
3-6-2 例外処理の実装
第4章 外部プログラムの呼び出し方を学ぶ
4-1 ライブラリ
4-1-1 ライブラリとは
4-1-2 ライブラリの管理ツール
4-2 モジュールの関数の呼び出し
4-2-1 モジュールの関数の呼び出し方法
4-2-2 標準ライブラリのモジュールの利用例
4-2-3 外部ライブラリのモジュールの利用例
第5章 ファイルの入出力を学ぶ
5-1 アプリケーションとやり取りする
データの形式
5-1-1 データの入出力
5-1-2 JSON
5-1-3 XML
5-1-4 CSV
5-2 ファイルの読み書き
5-2-1 テキストファイルの読み込み
5-2-2 テキストファイルの書き込み
5-2-3 JSON形式のファイルの読み込み
5-2-4 JSON形式のファイルの書き込み
5-2-5 XML形式のファイルの読み込み
5-2-6 XML形式のファイルの書き込み
5-2-7 CSV形式のファイルの読み込み
5-2-8 CSV形式のファイルの書き込み
第6章 一歩進んだプログラムに挑戦する
6-1 オブジェクト指向プログラミング
6-1-1 オブジェクトとクラス
6-1-2 クラスの作成
6-1-3 オブジェクトの作成
6-1-4 継承
6-1-5 アクセス制御
6-2 PythonによるExcelの操作
6-2-1 Excelの操作のための外部ライブラリ
6-2-2 Excelシートのセルから値の読み込み
6-2-3 Excelシートのセルへの値の書き込み
付録
付録A よく起きるエラーの一覧
付録B 研修コースのご紹介
索引
Amazonで詳しく見る
紹介文
大切なことを一つ一つ丁寧に解説。
機械学習用途に広く活用されているPython入門書が、プログラミング言語入門書のベストセラー「やさしい」シリーズで登場します。
文法の基本からデータの扱い、ライブラリの利用まで、Pythonプログラミングの基本を、豊富なサンプルで一つ一つ丁寧に解説していますので、無理なくしっかり身につけられます。
また、Pythonを使った機械学習の基礎と実際の活用例についても、わかりやすく解説しています。
「Pythonで機械学習をやってみたいけど難しいかも……」と思っている人に、手に取っていただきたい入門書です。
Amazonで詳しく見る
紹介文
Python(パイソン)は初心者が比較的修得しやすく、AI(人工知能)やパターン認識などの先端技術に活用されている優れたプログラミング言語です。
本書では、初心者を対象に、Pythonを使ったプログラミングの勘所をやさしく解説しました。
例題に取り組むことで、プログラミングとはどういうものかを理解し、プログラミング的思考を身につけてもらうことを目的に執筆しました。
読者の皆さんが、楽しみながらPythonの素晴らしさやプログラミングの醍醐味を感じていただけたら、著者として望外の喜びです。
Amazonで詳しく見る
紹介文
機械学習やデータ分析の道具をどのようにビジネスに生かしていけば良いのか、「仕事で使う」という観点から整理。
機械学習を実際の業務で利用する時に知っておくべき全体像が分かる!
機械学習やデータ分析の道具をどのようにビジネスに生かしていけば良いのか、不確実性の高い機械学習プロジェクトの進め方などを「仕事で使う」という観点から整理します。 プロジェクトのはじめ方や、システム構成、学習のためのリソースの収集方法など、読者が「実際どうするの?」と気になるであろう点を中心にまとめています。「人工知能でいい感じの成果を出してくれ」とあいまいな指示をされたとき、本書で学んだことが活きてくるに違いありません。
Amazonで詳しく見る
紹介文
基礎からアプリ開発のために必要な知識まで、「この一冊で」しっかりやさしく学べる新しいPythonプログラミングの教科書。
はじめてプログラムを行う人でも安心して読み進められるように、基礎をわかりやすく解説。さらに「AI」「スクレイピング」「データベース」「Webプログラミング」など、最新のアプリ開発にすぐに取りかかれるように、実践的なサンプルも多数掲載。
Chapter1 Pythonを始めるための準備
Chapter2 Pythonプログラミングを始めよう
Chapter3 全ての基本になる文法を学ぶ
Chapter4 Pythonを支える4種のデータ構造
Chapter5 プログラムの流れを変える制御構造
Chapter6 よく使う処理を関数にまとめる
Chapter7 もっと上手にプログラムを書くための応用文法
Chapter8 Pythonのオブジェクト指向プログラミング
Chapter9 有用で奥が深い組み込み関数を制覇する
Chapter10 ライブラリを使うための基礎知識
Chapter11 ファイルの読み書きの処理
Chapter12 Pythonによる仕事の自動化
Chapter13 流行のAI技術を活用する
Chapter14 スクレイピングでWebから情報を引き出す
Chapter15 データベースとWebプログラミング
Amazonで詳しく見る
紹介文
Pythonは、AIの開発から身近な作業の自動化まで、さまざまなシーンで活躍するプログラミング言語です。文法がシンプルで初心者でも習得しやすいため、人気が急上昇しています。本書は、Pythonプログラミングをこれからはじめてみたい人のために、学習範囲を思い切って絞ることで、基礎の基礎をしっかり学べる超入門書です。プログラミング未経験者でも随時、プログラムを書いて動かすため、飽きることなくサクサク読み進められます。
Chapter1 Pythonの世界にようこそ
01 こんなにも広い!Python活躍の場
02 プログラムの正体って結局何なの?
03 Pythonは命令文を書くための“言葉”
04 Pythonのここがイイ! その1 プログラムが書きやすい
05 Pythonのここがイイ! その2 便利な“部品”が豊富
Chapter2 プログラミング環境を準備しよう
01 プログラミングには、どんなモノが必要なの?
02 必要なモノが一式揃った「Anaconda」
03 プログラムの記述は「Jupyter Notebook」で
04 Anacondaをダウンロードしよう
05 Anacondaをインストールしよう
Chapter3 プログラミングのツボとコツはこれだ!
01 ツボは「命令文を上から並べて書く」
02 プログラムは具体的にどう作ればいい?
03 Pythonのプログラミングを疑似体験してみよう
04 限られた種類の命令文を正しく並べよう
05 プログラミングそのもののコツ
06 なぜ段階的に作り上げるノウハウが大切なの?
07 Pythonの学び方のコツ
08 バックアップ作業を自動化する
Chapter4 Pythonはじめの一歩
01 Jupyter Notebookを立ち上げよう
02 最低限知っておきたいノートブックの使い方
03 簡単な命令文を1つ書いて実行してみよう
04 文字列の書き方を学ぼう
05 文字列を体験してみよう
06 どのセルのコードが実行されるの?
07 大文字/小文字や全角/半角は区別されるの?
08 エラーが表示された! どうすればいい?
09 Jupyter Notebookの終了方法を知ろう
10 「カレントディレクトリ」を確認しよう
Chapter5 命令文の“柱”となる「関数」
01 「print」って実は「関数」の仲間
02 関数の書式と「引数」の使い方
03 関数の「戻り値」も知っておこう
04 「ライブラリ」の関数ならもっと便利で多彩
05 ライブラリの関数を使えるようにするには
06 ライブラリの関数を体験しよう
Chapter6 バックアップ自動化のサンプル1を作ろう
01 こんな自動化のプログラムをこれから作ろう
02 サンプル1を作る準備をしよう
03 大まかな処理手順を考えよう
04 考えた処理手順をさらに分解する
05 “回り道”をしながら作ることも大切なコツ
06 フォルダー作成時に親フォルダーを指定するには
07 「\」は必ず重ねて「\\」と記述すべし
08 「保管」フォルダーの中に暫定の名前のフォルダーを作ろう
09 ファイルをコピーする処理を追加しよう
10 フォルダーを圧縮する処理を追加しよう
11 バックアップ用フォルダー削除の処理を追加
12 2つのツボをサンプル1のコードで再確認
13 半角スペースは必須?
14 段階的な作成は命令文ごとのPDCAサイクルの積み重ね
15 1つの大きなPDCAサイクルを回そうとしない
Chapter7 いったんコードを整理しよう
01 「コメント」のキホンを学ぼう
02 サンプル1のコードにコメントを入れよう
03 コードの重複を解消しておこう
04 「変数」のキホン
05 変数のコードの書き方のキホンを学ぼう
06 変数を体験してみよう
07 変数をどう使ってコードの重複を解消する?
08 重複する文字列を変数にまとめよう
Chapter8 サンプル1を完成させよう
01 当日の日付のフォルダー名にするにはどうすればいい?
02 文字列を連結する方法を学ぼう
03 当日の日付を取得するには
04 当日の日付の出力を体験してみよう
05 日付を文字列に変換するには
06 日付を文字列に変換する関数を体験しよう
07 そういえば「import datetime」は?
08 別のセルで先に体験するメリット
09 サンプル1を当日の日付のフォルダー名に対応させよう
10 日付データの正体は「日付のオブジェクト」
11 なぜ完成後のコードをわざわざ整理するの?
12 親フォルダー名とバックアップ用フォルダー名のコードを分けよう
13 フォルダー名やファイル名の連結はこの関数で!
14 os.path.join関数を体験しよう
15 サンプル1でos.path.join関数を使おう
16 文字列を変数に切り出して整理
17 3つの文字列を変数に切り出そう
18 わかりやすい変数名を付けよう
19 マメにバックアップを取っておくと安心
20 datetime.date.today関数の記述をもっと短くしよう
21 今後はもっと機能を充実させたい!
Chapter9 他のライブラリの関数もちょっと体験しよう
01 画像処理のライブラリを体験しよう
02 画像を開く処理を作ろう
03 画像をリサイズする処理を作ろう
04 サンプル2を完成させよう
Chapte10 Pythonやプログラミングの真骨頂はこの後のステップ
01 同じ処理を繰り返し実行できる
02 複数のデータをまとめて扱う仕組みもある
03 条件に応じて異なる処理を実行できる
04 オリジナルの関数を定義して使える
05 変数はもっと凝った処理ができる
06 処理の流れは「上から下」だけではない
Amazonで詳しく見る
紹介文
デキるビジネスパーソンの間で話題沸騰中の「Python(パイソン)」というプログラミング言語で、Excel作業の質とスピードが劇的アップ!!!! コピペや分類など、あらゆる単純作業が全自動化! マクロVBAを上回る超絶パフォーマンスが満載! 著者は専門学校でも教鞭をとり、難解なプログラミングをやさしく解説することに定評のある教育系YouTuber。プログラミングを一切知らないビジネスパーソンのために、章を細かく分け、図解をまじえてやさしく解説していきます。
Amazonで詳しく見る
紹介文
ディープラーニングの本格的な入門書。外部のライブラリに頼らずPython 3によってゼロからディープラーニングを作成できる。
実際にシステムを作りながらディープラーニングを学ぶ!
ディープラーニングの本格的な入門書。外部のライブラリに頼らずに、Python 3によってゼロからディープラーニングを作ることで、ディープラーニングの原理を楽しく学びます。ディープラーニングやニューラルネットワークの基礎だけでなく、誤差逆伝播法や畳み込みニューラルネットワークなども実装レベルで理解できます。ハイパーパラメータの決め方や重みの初期値といった実践的なテクニック、Batch NormalizationやDropout、Adamといった最近のトレンド、自動運転や画像生成、強化学習などの応用例、さらには、なぜディープラーニングは優れているのか? なぜ層を深くすると認識精度がよくなるのか? といった“Why”に関する問題も取り上げます。
Amazonで詳しく見る
紹介文
これからPythonを始めたい人に、やさしく、楽しく、プログラミングを教えます!
「最近よく聞くPythonってなんだろう?」
「プログラミングをやってみたいけど、どこから始めればいいかな?」
そんな風に思っている方にぴったりの1冊です。
本書は、Pythonに興味を持っている方や、これからプログラミングを始めてみたい方、プログラミングに興味のある学生さんに向けて、丁寧に、やさしく解説をした本です。
書籍でプログラミングを学ぶ場合につまづきがちな環境構築はなるべく簡単なものを選び、簡単に始められるようにしています。プログラミングも、簡単なものから少しずつステップアップして、無理なく進めていけるようになっています。
この本の特徴は、「できた!」「動いた!」という感覚を積み重ねていけることです。すぐに動かせるサンプルを使いながら基本文法を学習できるようにし、「動かしながら学べる」ようにしています。
思い通りに動かすことで、学んだことがしっかりと身につきます。
Pythonの入門書は、画面にプログラムの結果を表示させて終わるものが多いですが、本書では、後半の章で、画面に円や四角を描画したり、ゲームを作ったりと、わくわくするような結果が得られるサンプルを用意しています。今話題の機械学習にもチャレンジしています。
たとえば、Chapter 6 ではプレイヤーをゴールまで連れて行く迷路ゲームや、車を操作するドライブゲームを作ります。自分で作ったゲームが動く喜びを、ぜひ味わってみてください。
Chapter 7 では、花の画像の分類や、手書き文字の認識、自分で収集した画像の分類などを行います。機械学習の第1歩を、ぜひここで体験してみてください。
本を読み終えたときにはきっと、「もっといろんなことができるようになりたい」と思ってもらえる、そんな1冊です。
Chapter 1 プログラミングって何だろう?
Chapter 2 プログラミングをはじめよう
Chapter 3 制御構文を使ってみよう
Chapter 4 リストと辞書型を使ってみよう
Chapter 5 関数を使ってみよう
Chapter 6 ゲームを作ってみよう
Chapter 7 機械学習に挑戦してみよう
Chapter 1 プログラミングって何だろう?
STEP 01 プログラミングの概要を知っておこう
STEP 02 Pythonを使わずにプログラミングを体験してみよう
STEP 03 Pythonについて知っておこう
STEP 04 Pythonをインストールしよう
Chapter 2 プログラミングをはじめよう
STEP 01 プログラムを実行してみよう
STEP 02 Pythonで計算してみよう~四則演算
STEP 03 変数で計算を分かりやすくしよう
STEP 04 画面に文字を表示してみよう
STEP 05 単位変換ツールを作ってみよう
Chapter 3 制御構文を使ってみよう
STEP 01 プログラミングに必須の制御構文について知っておこう
STEP 02 心理テストを作ってみよう
STEP 03 肥満判定テストを作ってみよう
STEP 04 カメ競争 - 繰り返しカメを動かしてみよう
STEP 05 3回勝負のじゃんけんゲームを作ってみよう
Chapter 4 リストと辞書型を使ってみよう
STEP 01 テストの平均点を求めよう~リスト型
STEP 02 3択クイズを作ってみよう ~ 2次元のリスト
STEP 03 アルファベットの頻出頻度を調べよう ~ 辞書型
STEP 04 データを成績順に並び替えよう
Chapter 5 関数を使ってみよう
STEP 01 次のオリンピックまであと何日か調べよう
STEP 02 今日の天気をWebから取得しよう ~ モジュールを定義
STEP 03 郵便番号から住所を調べてみよう ~ ローカル変数
Chapter 6 ゲームを作ってみよう
STEP 01 図形を描画しよう
STEP 02 迷路ゲームを作ろう1 ~ 迷路を表示しよう
STEP 03 迷路ゲームを作ろう2 ~ プレイヤーを動かそう
STEP 04 アクションゲームを作ろう
Chapter 7 機械学習に挑戦してみよう
STEP 01 機械学習の概要を知っておこう
STEP 02 機械学習ライブラリをインストールしよう
STEP 03 アヤメの分類に挑戦してみよう
STEP 04 手書き文字認識をしてみよう
STEP 05 写真判定に挑戦してみよう
Amazonで詳しく見る
紹介文
個人の地域密着型アウトドアショップがデジタルマーケティングで業績を飛躍的にアップさせていくストーリーに乗せて、DMの基礎を…
個人の地域密着型アウトドアショップがデジタルマーケティングで業績を飛躍的にアップさせていくストーリーに乗せて、DMの基礎を学ぶ
Amazonで詳しく見る
紹介文
イラストや写真を多用したビジュアル重視の紙面で初心者に直観的に理解できると人気のHead FirstシリーズのPython版
人気の入門書、Head Firstシリーズ待望のPythonバージョン!
イラストや写真を多用したビジュアル重視の紙面で初心者に直観的に理解できると人気のHead FirstシリーズのPython版です。前半でPythonの基本を一通り説明してから、実際に独自のWebアプリケーションをステップバイステップで構築する作業通じて、データベース管理、例外処理、データ処理などの理解を深めていきます。手を動かしながら学べる入門書の決定版です。
Amazonで詳しく見る
紹介文
ロングセラーのプログラミング学習シリーズにPythonが登場! 文法やクラス、メソッドなどをしっかり学べる入門書
プログラミング入門書のロングセラー、
プログラミング学習シリーズにPythonが新登場!
基本文法からクラス、メソッドの使い方・作り方まで
しっかり学ぼう!
本書は、現在もっとも幅広く使われているプログラミング言語の1つ
「Python」がはじめてという初心者を対象に、文法やプログラムの基本知識を
わかりやすく丁寧に教える入門書です。
これまで筆者が数多くの学生に対してプログラミングの授業をしてきた経験を
活かし、プログラミング初学者が「Python言語を通してプログラミングを学ぶ」
というコンセプトで、文法やプログラミングの基礎知識についてやさしく解説します。
Pythonでプログラミングをはじめたい学生や新人エンジニアにも最適な一冊です。
変数やif文による条件分岐、for文やwhile文を使った繰り返しから、
クラスやメソッドの使い方、作り方まで、つまずきやすいところを
ケアしながら解説します。
サンプルプログラムは短くてシンプルなものを選び、何をしているのかが
よくわかるように、コメントをしっかりつけました。
章の最後には練習問題があり、力試しもできます。
・何から学習すれば良いかわからない
・Pythonをはじめて学ぶ・あらためて基本から学びたい
・現場で通用する基礎を身につけたい
という方におすすめの1冊です。
★本書を授業などで教科書として活用していただくことを前提に作成した
学習教材(スライド等)を提供しています。詳細は本書の奥付をご覧ください。
■第1章 Pythonに触れる
1-1 プログラムとプログラミング言語
プログラムとは何か
プログラミング言語とPython
プログラムコードが実行されるまで
1-2 Pythonに触れる
Pythonの実行方法
対話モードでの実行
プログラムコードのルールとエラー
1-3 出力
画面へ文字列を出力する
シングルクォーテーション(')とダブルクォーテーション(")
1-4 変数
変数への値の代入
代入の正確な説明
値を確認する
値を変更する
■第2章 Pythonの基本
2-1 型と算術演算
組み込み型
算術演算
算術演算子の優先順位
変数を含む算術演算
算術演算の短縮表現
数値の型と型変換
異なる型を含む演算
2-2 文字列の扱い
文字列処理の大切さ
文字列の連結
数値からstr型への変換
変数の埋め込み(フォーマット文字列)
str型から数値への変換
2-3 リスト
リスト
インデックスを使用した要素の参照
2-4 モジュールの利用
モジュール
高度な計算をする(mathモジュールの利用)
乱数を使う(randamモジュールの活用)
モジュールに別名をつけて使う
ドキュメントを読む
■第3章 条件分岐と繰り返し
3-1 一歩前に進むための準備
ファイルに保存したプログラムコードの実行
キーボードからの入力の受け取り
コメント文
インデントとブロック
3-2 条件分岐
条件式と真偽値
if文
条件式と関係演算子
if ~ else文
if ~ elif ~ else文
3-3 論理演算子
論理演算子の種類
演算子の優先順位
if文と論理値
3-4 処理の繰り返し
繰り返し処理
while文
for文
rangeオブジェクト
ループ処理の流れの変更
ループ処理のネスト
■第4章 組み込み型とオブジェクト
4-1 オブジェクト指向
オブジェクトの管理とID番号
変数への代入とオブジェクトの関係
オブジェクトの同値性と同一性
インスタンスとクラス
4-2 文字列の操作
文字列の基本操作
formatメソッドによる文字列の整形
in演算子
4-3 リストとタプル
リスト
メソッド以外のリストの操作
内包表記
タプル
アンパック代入
4-4 辞書と集合
辞書(dict)
辞書の基本的な操作
セット(set)
セットの基本的な操作
4-5 基本型の性質
基本型の性質
変更可能な型(ミュータブルな型)と変更不可能な型(イミュータブルな型)
反復可能なオブジェクト
順序を持つオブジェクト
基本型の性質の一覧表
■第5章 ユーザー定義関数
5-1 関数
関数とは
処理の流れ
関数の呼び出しの階層
5-2 関数の引数
引数とは
引数のある関数
引数が複数ある関数
キーワード引数
デフォルト引数
可変長引数(引数をタプルで受け取る)
可変長引数(引数を辞書で受け取る)
ドキュメントの読み方(引数の読み方)
5-3 関数の戻り値
戻り値とは
戻り値のある関数
論理値を返す関数
複数の値を戻す
5-4 高階関数とラムダ式
高階関数
ラムダ式(lambda式)
■第6章 クラスの基本
6-1 新しいクラスを作る
クラスとは
中身のないクラス
初期化メソッドだけを持つクラス
インスタンス変数を持つクラス
初期化メソッドの引数
クラス変数
6-2 メソッドの定義
メソッドとは
クラスメソッド
オリジナルのクラスをモジュールとして利用する
6-3 継承
継承とは
継承を行う
インスタンス変数とメソッドの継承
メソッドのオーバーライド
superでスーパークラスのメソッドを呼び出す
■第7章 発展と応用
7-1 例外処理
プログラム実行時のトラブル
例外を処理する
例外の種類による処理の切り替え
7-2 テキストファイルの読み書き
データ処理の第一歩
テキストファイルを読み込む
with文を使う
テキストファイルを書き出す
ファイルの読み書き
7-3 データの集計とグラフ描画
情報の可視化
データの集計
matplotlibライブラリのセットアップ
matplotlibライブラリを用いたグラフの作成
7-4 画像処理
画像処理
OpenCVライブラリのセットアップ
画像の読み込みと表示
画像処理とファイルの書き出し
円の検出
7-5 Webスクレイピング
Webスクレイピングとは
requestsライブラリとbeautifulsoup4ライブラリのセットアップ
HTMLファイルの取得
HTMLファイルの解析
■付録A Pythonのインストールとサンプルプログラムの実行
Pythonのインストール
PowerShellによる対話モードの実行
ファイルに保存したプログラムの実行
■付録B 練習問題の解答
Amazonで詳しく見る
紹介文
どう動くのか仕組みを理解し、スマートなコードを実現。データ構造やアルゴリズムの現実のコードを知りスキルアップ。必読の書籍。
あなたはもっと上手にプログラムを書けるようになりたいと考えたことはありませんか? 本書は、Pythonで実際にプログラムを動かしながらデータ構造やアルゴリズムの知識を学び、実践的なプログラミング技術を身につける入門書です。かなり高度な内容まで踏み込みますが、図解でやさしく解説します。また、Pythonの仕組みを知りたい方にもおすすめします。
どう動くのか仕組みを理解し、スマートなコードを実現できる、データ構造やアルゴリズムの現実のコードを知りスキルアップできる。Pythonプログラマーの必須の書籍。
第1章 データ構造とアルゴリズムを学ぶための準備
もっと良いプログラムを書くために
計算量はアルゴリズムの効率を表す指標
Pythonでデータ構造とアルゴリズムを学ぶ
Pythonインタプリタの対話モード
プログラムの実行時間を計測する
章のまとめ
第2章 データ構造
メモリはデータを記憶する部品
配列はメモリによく似たデータ構造
スタックは最後に入れた値が最初に出てくる
キューは最初に入れた値が最初に出てくる
連結リストは要素と要素をつないで管理する
木構造は木のような形をしたデータ構造
章のまとめ
第3章 Pythonのデータ構造
リストは要素の変更が可能な配列
リストの仕組み
リストに対する操作の実行時間
タプルは要素の変更が不可能な配列
タプルの仕組み
色々なデータ構造を表現する
章のまとめ
第4章 探索のアルゴリズム
線形探索は端から順に探す
二分探索は値が大小順に並んでいるときに使う
指数探索は二分探索の前に探索範囲を絞り込む
ハッシュは目的の値を一撃で探し出す
章のまとめ
第5章 Pythonにおける探索のアルゴリズム
リストやタプルにおける線形探索
集合はハッシュを使って値を保持する
集合の仕組み
辞書はハッシュを使ってキーと値の組を保持する
辞書の仕組み
章のまとめ
第6章 ソートのアルゴリズム
ソートは規則に基づいて値を並べ替える
バブルソートは値が浮かび上がる
選択ソートは最小値や最大値を見つける
挿入ソートは適切な位置に値を挿入する
クイックソートは値を左右に振り分ける
マージソートはソート済みの列を併合して長くする
安定なソートは同じ値の順序を変えない
章のまとめ
第7章 Pythonにおけるソートのアルゴリズム
Pythonにおけるソートの使い方
Pythonのティムソートは挿入ソートとマージソートの組み合わせ
データ構造の操作に役立つ組み込み関数
データ構造の初期化に役立つ内包表記
章のまとめ
Amazonで詳しく見る
紹介文
Pythonのスタンダードな機能だけを解説し、初心者がつまづかないようにわかりやすさを追求した入門書です。
Pythonのスタンダードがわかる。
わかりやすさを追求した本格的な入門書!
本書はPythonの入門書です。Pythonはコンパイルのいらない
軽量なプログラミング言語です。その手軽さや文法の学びやすさが
人気であり、入門者がはじめてプログラミングを行なうのに最適な
言語として注目されています。
この書籍は、はじめてプログラミングを学ぶ人に向けています。
入門者がつまづく箇所を事前に募集したプログラミングがはじめての
レビューアーと追求し、プログラミングの「なぜ」を解決できるよう
わかりやすさを重視した解説をしています。
この書籍で、インストールから応用まで、Pythonでデータを
扱うための基礎がたのしく身につけることができます!
【本書の特長】
本書はPythonで本当に使われることに特化しており、
「せっかく覚えたのにこの機能全然使わない」ということが
ありません。
入門者でもスラスラとPythonを学ぶことができます。
また、一番つまづきやすい環境構築は図を使いながら、
丁寧に解説しているので、安心してプログラミングの学習を
始めることができます。
【対応環境】
本書はWindows、MacOSの両方で解説をしています。また、Pythonの
バージョンは執筆時では最新のPython 3.6.1で解説しています。
第1章 Pythonをはじめよう
1_1 Pythonの紹介
1_2 Pythonのインストール・環境設定
1_3 Pythonでプログラムを動かそう
1_4 まとめ
第2章 型とメソッド
2_1 数値
2_2 文字列
2_3 変数
2_4 数値と文字列の相互変換
第3章 条件分岐
3_1 条件分岐とは
3_2 いろんな比較
3_3 その他の構文
第4章 リスト型と繰り返し処理
4_1 リスト型とは
4_2 繰り返し処理とは
4_3 for文とif文の組み合わせ
第5章 辞書型
5_1 辞書型
5_2 辞書型をfor文で使う
第6章 関数
6_1 関数
6_2 引数
6_3 ローカル変数とスコープ
第7章 エラーと例外
7_1 エラーとは
7_2 例外処理
7_3 エラーの種類
第8章 スクリプト、モジュール、パッケージ
8_1 スクリプト
8_2 モジュール
8_3 パッケージ
第9章 Webスクレイピング
9_1 Webスクレイピング
9_2 PythonでWeb上の情報を取得してみよう
9_3 取得した情報をBeautiful Soupを使って解析してみよう
9_4 解析した情報を見やすく表示しよう
9_5 この章の振り返り
第10章 ファイル操作
10_1 データ・ファイル操作について
10_2 ファイルを操作してみよう
10_3 open関数とファイルオブジェクト
10_4 応用編:プログラムの中でファイルを扱ってみよう
10_5 応用編まとめ
付録
A_1 プログラミングをはじめるためのCLIの基礎
A_2 ドキュメントの読み方、見つけ方
A_3 プログラムでよく使うファイル形式の紹介
A_4 さらにPythonを使い込んでいくために
解答例
Amazonで詳しく見る
紹介文
プログラマーを仕事にしたいなら、まずはひと通りの“開発”を体験してみませんか。スキルアップのための指針が必ず見つかります!
■ 開発の仕事をWebアプリケーションで実体験!
「プログラマーが足りない!」との指摘をよく耳にします。プログラマーやソフトウェアエンジニアを目指している人も多いことでしょう。でも、ゼロから目指すとなると未経験ということに…。何から勉強すればいいか、迷うこともあるのではないでしょうか。
そこで、まずは本書でソフトウェアの開発を“経験”してみませんか?
本書では、たとえプログラミング経験がない人でも、プログラムを作って、サーバーに転送し、誰にでも使ってもらえるようにWeb上のサービスとして公開するところまでできるよう、必要な作業やプロセスを解説しました。プログラミング経験がまったくなくても、本書の解説に沿って作業を進めていけば自分のサービスとしてアプリケーションを公開するところまでひと通りの開発を自分の手で実現できます。
本書を通じて開発したWebアプリケーションは、面接でアピールできる自分の実績になります。面接の場ではぜひ胸を張って「こういうアプリケーションを独力で公開しました」と見てもらってください。
プログラミングを学ぶ際の王道は、文法の基礎からコツコツと学んでいくこと。それはもちろん大事です。でも、それだけだといつになったら何らかのアプリケーションを作れるようになるのか、その道筋がわからず行き詰まってしまう人も少なくありません。
その点で、本書でコーディングからデプロイまで、アプリケーション開発を“実際にやってみる”ことにより、コツコツと学んだ基礎が実際の開発現場でどのように役立つのか、必要とされるのかを実感することができるでしょう。もし、基礎を学びながらモヤモヤとしたものを抱え、学習がはかどらなくなってしまっているのなら、いったん本書で全体像を把握してみることをお薦めします。全体を見渡すことで、基礎の重要性がわかると学習の効率も格段に上がるはず。
本書で取り上げた主なサービスやツールは、AWS(Amazon Web Services)、Django、Git、Herokuです。すべてクラウドで完結しているので、お手元の環境のOSやスペックに依存せず、Webを利用できる環境であれば誰でも同じように開発プロセスをトレースできます。
第1章 プログラマーと開発の仕事
第2章 Webアプリケーション開発の基本
第3章 Pythonの基礎の基礎
第4章 Webアプリ開発――開発環境の作成
第5章 Webアプリ開発――コーディング
第6章 Webアプリ開発――デプロイ
第7章 これからのスキルアップ戦略
Amazonで詳しく見る
紹介文
プログラミング初心者でも全部できる!
Excelシート間のコピペをはじめ、単純なパソコン仕事は小さなプログラムを書くことで自動で行うことができます。
こうしたプログラムを書けるようになることが、自分の仕事を効率化したい社会人にとって大きな武器になることは間違いありません。
本書ではプログラミング言語Pythonを使って、パソコン仕事の中心であるExcel作業を自動化する方法を紹介します。
Excelの自動化といえば「マクロ・VBA」が定番ですが、Pythonの強みは
・Excelアプリを起動しなくてよい
・メールやWebブラウザなども簡単に自動化できる
という点にあります。
本書ではExcelとともにメール、Webの自動化もしっかり扱います。これにより、Webから抽出したデータをExcelファイルに保存してメールで送信、といった連携も行えるようになり、仕事での活用の幅が広がります。
プログラミング初心者である社会人が、実際に自分の仕事が自動化できるように、必要な情報をもれなく丁寧に解説することを心掛けました。本書を片手に「新しい仕事のやり方」を始めましょう!
<本書の方針>
・オブジェクトなどの難しいプログラム理論は一切使いません。
・一番単純な道具だけで、準備に時間をかけず、すぐ始められます。
・実践的な例題で、実務で本当に使えるプログラムを紹介します。
第1章 Pythonプログラミングの基本
1-1 プログラムを書いて実行する方法を覚える
1-2 変数を使ったコードを書いてみよう
1-3 複数のデータはリストに入れる
1-4 複数のデータをループで処理する
1-5 データの状態に応じて処理を分ける
1-6 IDLEを使いやすく設定する
第2章 PythonでExcelファイルを操作する
2-1 Excelファイルの基本構造を理解しよう
2-2 ブックの開き方・保存方法を覚えよう
2-3 プログラムでセルの値を読み書きしよう
2-4 セルを1行ずつ読み書きする
2-5 シートの操作方法を覚えよう
2-6 複数のシートをまとめる
2-7 絶対に覚えておきたいプログラミングのコツ
第3章 PythonでCSVファイルを操作する
3-1 CSVファイルを読み込んでみよう
3-2 CSVファイルにデータを書き込んでみよう
3-3 Excelブックと相互に変換する
第4章 Excelファイルの転記・集計をPythonでおこなう
4-1 転記・集計を実現するExcelの三大関数とは
4-2 Excelのマスタを取り込む
4-3 Excelのマスタからデータを検索する
4-4 表のデータを別のブックに転記する
4-5 条件を満たすデータの個数や合計を求める
4-6 Pythonで自動化するメリットとは
第5章 帳票作成をPythonでおこなう
5-1 請求書作成の手順を整理する
5-2 顧客ごとの売上データの絞り込み
5-3 顧客ごとの請求書を作成する
5-4 請求書を印刷してPDFとして保存しよう
5-5 業務全体ではExcelと良いとこ取りを目指す
第6章 Pythonでもっと作業を自動化するには
6-1 Pythonの強みは豊富なライブラリ
6-2 PythonならメールもWebも自動化できる
第7章 Pythonで複数の人にまとめてメール送信する
7-1 メールサーバーとの交信方法
7-2 メールで送るメッセージを作成する
7-3 メールを自動送信する
第8章 PythonでWebから情報を収集する
8-1 Seleniumのインストール
8-2 ブラウザを操作してみる
8-3 Selenium IDEでブラウザ操作を記録
8-4 Webページから情報を読み取る
8-5 実際のWebページから情報を読み取る
8-6 Webからの情報収集を自動化する
Amazonで詳しく見る
紹介文
こんどはデータ分析に挑戦!「数式一切なし」で理解できちゃう!データ分析のきほんとしくみ
Pythonでデータ分析を体験してみよう!
【データ分析を一緒に体験しよう】
スクレイピングなどで集めた大量のデータ。
どうやって分析してたらよいか、困っていませんか?
「数式があって難しそう」
「プログラムも大変そう」
と思っている方も多いはず。
本書は、そうした方に向けて、サンプルを元にやさしく
データ分析の方法を解説しています。
【Python2年生について】
「Python2年生」は、「Python1年生」を読み終えた方を対象とした入門書です。
ある程度、技術的なことを盛り込み、本書で扱う技術について身に着けてもらいます。
『Python2年生 スクレイピングのしくみ』(ISBN:9784798161914)も刊行されています。
【対象読者】
・データの分析方法を知りたい初心者
【本書のポイント】
ヤギ博士&フタバちゃんと一緒に、データ分析の考え方から丁寧に解説。
データを分析する時に必要な前処理の方法や、データの集まりの見方、
データを見やすいグラフにする方法、データの分布の見方、予測の立て方を
解説する書籍です。
【著者プロフィール】
森 巧尚(もり・よしなお)
アプリの開発や、技術書や電子工作マガジンなどでの執筆活動。関西学院大学非常勤講師、
関西学院高等部非常勤講師、成安造形大学非常勤講師、プログラミングスクールコプリ講師など、
プログラミングに関する幅広い活動を行っている。
近著に『Python1年生』、『Python2年生 スクレイピングのしくみ』、
『Java1年生』、『動かして学ぶ!Vue.js開発入門』(いずれも翔泳社)、
『楽しく学ぶ アルゴリズムとプログラミングの図鑑』(マイナビ出版)などがある。
第1章 データ分析って何?
LESSON 01 データ分析って何
LESSON 02 データ分析の手順:PPDACサイクル
LESSON 03 Jupyter Notebookをインストールしよう
LESSON 04 Jupyter Notebookの使い方
第2章 集めたデータは前処理が必要
LESSON 05 表データを読み込もう
LESSON 06 データをざっくりと眺める
LESSON 07 データのどこを使う?
LESSON 08 データのミスをチェックする
第3章 データの集まりをひとことでいうと?:代表値
LESSON 09 データを平らに均(なら)す
LESSON 10 平均値を代表といっていいの?
LESSON 11 平均値が同じなら、同じといっていいの?
第4章 図で特徴をイメージしよう:グラフ
LESSON 12 データのばらつきがわかる
LESSON 13 基本的なグラフを作ろう
LESSON 14 ばらつきのわかるグラフ
LESSON 15 グラフをわかりやすく調整する
第5章 これって普通なこと?珍しいこと?:正規分布
LESSON 16 データのばらつきを数値で表す
LESSON 17 自然なばらつき
LESSON 18 この値は普通なこと?珍しいこと?
LESSON 19 このデータは自然なばらつき?
LESSON 20 違うばらつきのデータでの比較ができる
第6章 関係から予測しよう:回帰分析
LESSON 21 2種類のデータの関係性の強さ:相関係数
LESSON 22 散布図の上に線を引いて予測
LESSON 23 総当たりで表示させる散布図
LESSON 24 アヤメのデータを見てみよう
Amazonで詳しく見る
紹介文
Python3に完全対応!!
お待たせしました! 大好評「みんなのRaspberry Pi入門」シリーズの第4版です。
「Raspberry Pi3」はもちろん、「Python3」にも対応させました!! 進化のとどまるところを知らないRaspberry Piは、最新OSのコードネームも「jessie」から「Stretch」へ、開発環境「IDLE」も「Thonny」に移行! すべてに対応した最新刊です。
本書の大きな特徴は、次の2つです。
1.写真と図で、本当に必要なもの、メンテナンスの方法などを丁寧に解説しました。
2.Raspberry Piの公式言語である「Python3」をしっかり、分かりやすく解説しました。
プログラミング未経験の方でもチャレンジいただけるよう、Pythonに限定しない形でのプログラミングの基礎と基本的な作法について、多くの紙面を割いております。
まさに入門者にピッタリの一冊です。
Amazonで詳しく見る
紹介文
仕事や研究で役立つ実践的な側面を重視し、一般的なプログラミングのベストプラクティスをPythonに適用する方法について解説。
2014年米国Joltアワード受賞書、待望の邦訳!
仕事や研究で役立つ実践的な側面を重視し、一般的なプログラミングのベストプラクティスをPythonに適用する方法について解説します。主なテーマは、エレガントなコーディングのためのデザインパターン、処理速度向上のための並列処理とCython、ハイレベルなネットワーク処理、そしてグラフィックスです。読者対象は中級以上のPythonプログラマー。実践的なベストプラクティスを示し、巷で囁かれてきた「デザインパターンはPythonには不向き」「Pythonはマルチコアの恩恵を受けられない」といった認識が間違いであり、迷信にすぎなかったことを明らかにします。2014年米国Joltアワード受賞書、待望の邦訳。
Amazonで詳しく見る
紹介文
Pythonの基本からデータ分析まで、1冊で学べる本。データを分析するのに必要最小限の知識を最短コースで習得できる。
身近なデータをPythonで分析できるようになるための知識を、最短コースで身に付けられる本です。Pythonのホントの基本から、データ分析に必要なPythonライブラリの使い方、データ分析の実践例までを一気に学べます。プログラミングの経験がない方もこの1冊を読めば、実際のデータ分析を始められます。
ベストセラーの「最短コースでわかる ディープラーニングの数学」「Pythonで儲かるAIをつくる」などを執筆した著者が送るデータ分析&AI書籍の第4弾。いつもの平易な解説で、初学者も安心して学べます。
本書は次のような方に最適です。
(1)プログラミング言語自体を知らないが、データ分析のためにこれから勉強したいという方
(2)Pythonのプログラミングは理解しているが、pandasなどの分析用ライブラリがわからないのでAI書籍の実習コードが読めない方
(3)データ分析の全体像がつかめず、いざデータ分析をしようとすると、どこから手を付けていいかわからない方
本書において、Pythonプログラミングとデータ分析を「最短コース」で学べるようにしたポイントは三つあります。
(1)学習内容を最低限に抑える
Python自体も、pandasなどの分析用ライブラリも、機能は多いですが、データ分析で本当に必要なものは意外と多くありません。各領域で本当に必要な機能に絞り込んで解説しています。データ分析の実務でほとんど登場しないPythonの機能は、思い切って全部落としました。Pythonやpandas、Matplotlibなど、それぞれを分厚い本で学ぶ必要はなく、本書1冊で身に付けられます。
(2)演習問題でプログラミングの実地訓練を積む
テーマ(節)ごとに演習問題を設けていて、実際のコーディングによる訓練でプログラミングの実務スキルが身に付きます。
(3)開発環境(Google Colab)上の試行錯誤で体得
関数の細かい挙動について、トライアンドエラーを繰り返して体験・実験により理解できます。
実際にデータ分析ができるようになるには、さらに「洞察の導出」という難しいタスクがあります。このタスクは内容が抽象的なだけに、なかなか体系的には学べません。そこで本書では「この業務要件でこのデータを分析した場合、こんな洞察が得られる」という話をたくさん入れ込みました。このような具体例を通して、自分自身のテーマに対して洞察を導くためのヒントが得られます。
本書を読了した方は、プログラミングとデータ分析という必須スキルを身に付けられ、ニーズの高いDX人材のど真ん中に位置できます。
Pythonの基本からデータ分析まで、1冊で学べる本。データを分析するのに必要最小限の知識を最短コースで習得できる。
1章 Pythonプログラミング入門
Google Colabの基本操作、変数、データ型、 条件分岐、関数とメソッド、リストとループ処理、タプルと辞書、関数定義、やや高度なループ処理
2章 データ分析ライブラリ入門編
ライブラリ入門、NumPy入門、Matplotlib入門、pandas入門
3章 データ分析ライブラリ中級編
pandas活用、データ読み込み、確認・加工(前処理)、集計、可視化、検索・結合、日付データの処理
4章 データ分析実践編
公開データセットから知見を導出、相関関係と因果関係の違い、仮説と検証
Amazonで詳しく見る
紹介文
Pythonエキスパートの支持を集めている書籍の改訂版。堅牢でパフォーマンスの高い優れたプログラムを書くノウハウをまとめた。
Pythonプログラマの圧倒的支持を得るロングセラー待望の改訂版!
発刊以来、多くのPythonエキスパートの支持を集め、増刷を重ねている書籍の待望の改訂版。ベストプラクティス、ヒント、落とし穴の避け方や達人プログラマのコード、新機能などを紹介し、堅牢でパフォーマンスの高い優れたプログラムを書くノウハウをまとめています。今回、Pythonのアップデートに合わせて全面改訂。第1版の内容に加えて、データ構造、内包表記とジェネレータ、性能、デバッグについての新たな章を追加し、さらに内容を充実させています。第1版では59項目だったトピックが、第2版では90項目に増えています。Python 3.8対応。
Amazonで詳しく見る
紹介文
はじめてのプログラミング
条件で分ける方法(分岐の基礎文法)
繰り返しさせる方法(反復の基礎文法)
関数を使ってみよう!
いろいろな型を学ぼう
エラーと例外を使いこなす
オブジェクトとクラスとは何か?
自分が書いたプログラムをテストする
明日から使えるWebプログラミング
Webアプリケーションことはじめ
今後の学習に向けて
Amazonで詳しく見る
紹介文
Pythonで始めるプログラミング「超」入門
プログラミングを始めよう!Python(ぱいそん)で。
大人から子どもまで。プログラミングをはじめるならPythonで決まり!
本当の本当に、まったくの初心者でも大丈夫。画面に打ち込む最初の1文字から、本書はトコトンやさしく付き添います。
ポイント1「サンプルが楽しい!」
⇒よくある“お勉強のためのサンプル”の代わりに「こういうの見たことある!」「こういうのが作ってみたかった!」というような、楽しいサンプルを集めました。最初の「やるぞ!」というモチベーションを維持したまま、最後のページまで読み進めることができます。
ポイント2「初学者が知るべきことを完全網羅!」
⇒内容のわかりやすさだけでなく、スタート地点・ゴール地点・スタートからゴールに至るまでの道筋、と全体の構成にもこだわりました。初学者が陥りがちなのは「まず何を知るべきか?」という悩み。本書では、はじめの一歩からスタートし、まったくの初心者がおさえておくべきポイントをまとめました。余計なことで悩まずに実習を進めていけます。
ポイント3「例え話がわかりやすい!図やイラストが豊富で楽しい!」
⇒多くの人がつまづくのは、プログラミング初心者にはイメージしづらい、独特な概念(がいねん)や専門用語。本書では、誰にでも手にとるようにわかるイラストと例えで
イメージとして掴みやすくなるよう工夫しています。いったんイメージを掴んでしまえば、文章はスイスイ読めるようになります!
ポイント4「手を動かして『できた!』体験を積み上げるステップアップ方式」
⇒教科書のように読むだけでもいいのですが、せっかくならパソコンの前に座って、画面を開いてひとつずつ実行してみてください。「できた!」実感が得られれば、最後まで楽しく読み進められるのです。
Chapter1 イントロダクション
Chapter2 Pythonプログラミングの第一歩
Chapter3 一歩進んだPythonプログラミング
Chapter4 外部ライブラリを活用したアプリケーションに挑戦!
Amazonで詳しく見る
紹介文
待望の「機械学習のしくみ」が登場!ヤギ博士&フタバちゃんと一緒に機械学習の世界を体験してみよう!
ヤギ博士・フタバちゃんと一緒に
機械学習のしくみを学ぼう!
【機械学習をいちから学んでみよう!】
「最近よく耳にする人工知能と機械学習について知りたい」
「機械学習ってどのようなことをするの?」
と思っている方は多いと思います。
本書はそうした方に向けて「機械学習」について
いちからやさしく解説します。
【Python3年生について】
「Python1年生」「Python2年生」を読み終えた方を対象とした入門書です。
(※「Python3年生」から初めて学ぶ方でもわかるように工夫しています)
【読者対象】
機械学習の初心者
【本書のポイント】
ヤギ博士&フタバちゃんと一緒に、
機械学習のしくみについて、
サンプルを動かしながら、
楽しく学ぶことができます。
【著者プロフィール】
森 巧尚(もり・よしなお)
アプリの開発や、技術書や電子工作マガジンなどでの執筆活動。
関西学院大学非常勤講師、関西学院高等部非常勤講師、
成安造形大学非常勤講師、大阪芸術大学非常勤講師、プログラミングスクールコプリ講師など、
プログラミングに関する幅広い活動を行っている。
近著に『Python1年生』、『Python2年生 スクレイピングのしくみ』、『Python2年生 データ分析のしくみ』、
『Java1年生』、『動かして学ぶ! Vue.js開発入門』(いずれも翔泳社)、
『楽しく学ぶ アルゴリズムとプログラミングの図鑑』(マイナビ出版)などがある。
第1章 機械学習の準備
01 機械学習ってなんだろう?
02 分けることは、わかること
03 機械学習の準備をしよう
第2章 サンプルデータを見てみよう
04 scikit-learn のサンプルデータセット
05 サンプルデータセットを自動生成しよう
第3章 機械学習の手順を理解しよう
06 データを用意する
07 データを学習用とテスト用に分ける
08 モデルを選んで、学習する
09 モデルをテストする
10 新しい値を渡して、予測する
11 分類の状態を可視化しよう
第4章 機械学習のいろいろなアルゴリズム
12 回帰:線形回帰
13 分類:ロジスティック回帰
14 分類:SVM(サポートベクターマシン)
15 分類:決定木
16 分類:ランダムフォレスト
17 分類:k-NN(k 近傍法)
18 クラスタリング:k-means(k 平均法)
第5章 チノふたたび! 画像から数字を予測しよう
19 データを準備する
20 学習データを準備する
21 学習させる
22 予測させる
23 教師なし学習を利用して、データをイメージしよう
24 さらに先へ進もう
Amazonで詳しく見る
紹介文
私たちの日常生活で、人工知能が普通に使われる時代になりました。スマートフォンの顔認証、自動運転技術、SiriやAlexaのようなAI音声アシスタントなど身近な技術ばかりです。これからは機械学習や深層学習はエンジニアの基本教養となるかもしれません。本書は、機械学習や深層学習の分野から画像認識に重点をおいて、難しい数式をつかわず、図や写真を多用して解説する入門書です。必要な概念、用語、キーワードも網羅的に説明します。
第1部 人工知能・機械学習・深層学習の基礎知識
第1章 人工知能・機械学習・深層学習の基本
01-01 人工知能概要
人工知能の歴史
人工知能とは
機械学習
人工ニューラルネットワーク
深層学習(ディープラーニング)
今注目される理由
01-02 機械学習とは
機械学習とは
機械学習のタイプ(分類)
教師あり学習
教師あり学習の用途
教師あり学習の重要アルゴリズム
教師なし学習
教師なし学習の用途
教師なし学習の重要アルゴリズム
強化学習
機械学習のためのデータ
データの重要性
学習用データと検証データ
過学習(over fitting)
次元の呪い(the curse of dimensionality)
データの入手
機械学習(教師あり)の流れ
課題の定義
データの準備
学習フェーズ
検証・評価フェーズ
応用フェーズ
01-03 深層学習とは
視覚情報の重要性
生物学ニューロンから人工ニューロンへ
生物学ニューロンとは
生物学ニューロンのモデル化
パーセプトロン(perceptron)
パーセプトロンの限界
ニューラルネットワーク
活性化関数
ニューラルネットワークの学習
深層学習(ディープラーニング)とは
深層学習の応用
3つの代表的な深層学習アルゴリズム
畳み込みニューラルネットワーク詳説
入力層(input layer)
畳み込み層(convolutional layer)
プーリング層(pooling layer)
全結合層(fully connected layer)
深層学習のフレームワーク
機械学習、深層学習に必要な数学
第2章 Pythonと重要なツール・ライブラリ
02-01 本書の実行環境の概要について
Pythonの開発環境
Pythonの環境を用意する
PCにPythonをインストールする場合
Anacondaのダウンロード
Anacondaのインストール
Anaconda Navigatorの起動
Anacondaで環境の管理
まずはChannelを追加しよう
仮想環境にパッケージをインストールしよう
Raspberry Piの場合
pip3のインストール
共通の必要なパッケージ等をインストールする
Kerasが利用するパッケージのインストール
本書のサンプルコードをダウンロードする
02-02 Jupyter Notebookを使おう
Jupyter Notebookの起動
Jupyter Notebookの基本操作
Notebookを作る
新しいNotebookを作る
メモを追加する
Raspberry PiでJupyter Notebookを使う場合
02-03 Colaboratoryノートブックを使おう
動かそう!
GoogleアカウントにログインしてGoogleドライブを起動
Colaboratoryノートブックを作成する
Pythonのバージョンの設定
Colaboratoryでの操作
ハードディスクの容量の確認
メモリ使用量の確認
OS情報の出力
CPU情報の出力
ファイルのアップロード
パッケージのインストール
使用中のパッケージのバージョンの確認
本書のNotebookをインポートする
02-04 Pythonの基礎と文法
Pythonの基本
Pythonのバージョンを確認しよう
インストールされているパッケージを確認しよう
Hello Worldと表示してみよう
日本語の出力
コメントの書き方
演算
変数
変数とは
文字列の変数
文字列の連結
Pythonの型
型の出力
型の変換
リストの作り方
二次元配列
三次元配列
文字の多次元配列
リストからの値の出し方
リストのスライス
リスト要素の更新
リスト要素の追加
リスト要素の削除
リストの代入
条件分岐
if文と条件式
else
elif
条件式の and、not、or
for文
range()による数値シーケンスの生成
while文
関数
import
ファイルをimportする
第3章 NumPyとMatplotlibの使い方
03-01 NumPyの使い方
NumPyの基本操作
配列の作成
掛け算
足し算
配列の要素同士の四則演算
ベクトルの内積
二次元ベクトルの内積
ndarrayの形状変換
要素がゼロの配列生成
要素が1の配列を生成する
未初期化の配列を生成する
matrixで二次元配列の作成
shapeで次元ごとの要素数を取得する
ndimで次元構造を取得する
配列要素のデータ型dtype
1要素のバイト数itemsize
配列の要素数size
arangeで配列を生成する
配列要素データ型の変換astype
03-02 Matplotlibの使い方
簡単なグラフを作ってみよう
グラフの要素に名前を設定する
グラフのグリッドを非表示にする
グラフの目盛を設定する
グラフのサイズ
散布図
複数グラフのグリッド表示
三次元散布図
色とマーカーを変える
第2部 今すぐ試してみたい16のレシピ!
第4章 機械学習・深層学習のレシピ(初級・中級)
04-01 OpenCVでの画像処理の基本
OpenCVとは
OpenCVのバージョン
OpenCVのインストール
バージョンの確認
サンプル画像のダウンロード
調理手順
画像の取込み
画像の保存
トリミング
リサイズ
画像の回転
色調変換
2値化
ぼかし
ノイズの除去
膨張・収縮
輪郭抽出
画像データの水増し
まとめ
04-02 Raspberry PiでOpenCVを利用した顔認識
Raspberry PiでOpenCVを使えるようにする
OpenCVのコンパイルとインストール
Raspbianの用意
Expand Filesystem
システムを更新する
swapfileサイズを大きくする
必要なパッケージのインストール
OpenCVのソースコードを用意する
コンパイルの準備
いざコンパイル
インストール
OpenCVのsoファイルを参照できるようにする
最後にswapfileサイズを戻す
インストール後の確認
調理手順
Raspberry Piカメラモジュールの用意
PiCameraパッケージのインストール
PiCameraを使えるようにRaspberry Piを設定する
カメラの動作確認
OpenCVのサンプルコードを実行しよう
分類器のダウンロード
実行と結果
検出方法
まとめ
04-03 アヤメ分類チャレンジレシピ
scikit-learnとは
scikit-learnとはPython向けの機械学習フレームワーク
scikit-learnの特徴
scikit-learnの datasetsの種類
scikit-learnのインストール
scikit-learnのバージョンの確認
課題を理解する
データに慣れる
表形式でデータを見る
データ全件を見る
1つの特徴量を見てみる
1列目、2列目のデータを使う場合
3列目、4列目のデータを使う場合
調理手順
必要なパッケージのインポート
分類と回帰
サポートベクターマシン(SVM : Support Vector Machine)
回帰係数と誤差
超平面(hyper-plane)とは?
交差検証
最後に一番シンプルな学習と検証
分類(predict)してもらう
まとめ
04-04 scikit-learnで機械学習手書き数字認識レシピ
手書き数字の画像データの特徴量を調べる
データセットモジュールのインポート
データを表示する
データを画像として描画する
複数データを描画してみよう
手書き数字データセットを三次元の空間で見る
調理手順
分類器をインポートする
データを再構成
分類器(SVC)の作成
検証とグラフ
一回整理しよう
まとめ
04-05 Chainer+MNIST手書き数字分類レシピ
Colaboratoryで学習、Raspberry Piで
手書き認識ウェブアプリケーションを作成
Chainerとは
MNISTとは
Chainer のインストール
Chainerのバージョンの確認
Chainer の基本部品のインポート
MNISTのデータをロードする
数字の画像を見る
学習用データセットと検証用データセットの数
調理手順
必要なパッケージをインポートする
ニューラルネットワークの定義
iteratorsとは
Optimizerの設定
検証の処理ブロック
学習と検証
学習済モデルの保存
学習済モデルのダウンロード
学習済のモデルを使う
Raspberry Pi側の作業
手書き数字の認識
画像データの送信
画像データの受け取り
まとめ
04-06 Chainerで作る犬と猫認識ウェブアプリ
データの準備
ChainerとCuPyの用意
データセットのダウンロード
ダウンロードしたファイルを確認する
データセットを解凍する
調理手順
学習データを確認する(任意画像)
検証データを確認する(任意画像)
学習データと検証データを分ける
関数get_image_teacher_label_list()の定義
学習データと検証データをリストにする
画像データ形式の整備
データ形状変換の結果確認
画像の前処理関数 adapt_data_to_convolution2d_format()
データセットの作成
学習データと検証データを分ける
CNNを設定する
反復子
Optimizerの設定
updaterの設定
trainerの設定
extensionsの設定
学習の実行
学習結果の確認
検証する(学習済モデルを使う)
モデルを書き出す
関数の定義 convert_test_data()
検証用の写真を選ぶ
画像サイズの設定
Google Driveにドキュメントとして保存する
ファイルの作成
保存(Google Driveへのアップロード)
手書き犬と猫の判別
写真をアップロードして認識させる
写真を判定する処理
まとめ
04-07 PyTorchでMNIST手書き数字学習レシピ
PyTorchとは
PyTorchのインストール
調理手順
必要なパッケージのインストール
データセットのダウンロード
データの中身を見てみる
データを可視化してみる
学習データと検証データを用意する
ニューラルネットワークの定義
モデル
コスト関数と最適化手法を定義する
学習
検証
個別データで検証
まとめ
04-08 PyTorchでCIFAR-10の画像学習レシピ
CIFAR-10とは
PyTorchのインストール
必要なパッケージのインポート
transformを定義する
学習データと検証データの用意
クラスの中身を設定する
調理手順
必要なパッケージのインポート
画像を表示する関数
CIFAR-10の中身を見る
学習のニューラルネットワークの定義
optimizerの設定
学習
個別データで検証
テスト
検証
クラス毎の検証結果
まとめ
第5章 機械学習・深層学習のレシピ(中級・上級)
05-01 TensorFlow+Keras+MNIST
手書き数字認識ウェブアプリ
Kerasとは
Kerasのバックエンドとは?
なぜKerasを使うのか
TensorFlowとは
Kerasを用いた処理フロー
調理手順
TensorFlowのインストール
TensorFlowのバージョンの確認
Kerasのインストール
設定
MNISTデータセットのローディング
学習モデルに合わせたデータ配列の形状変換
学習モデルに合わせてデータ調整
教師ラベルデータの変換
シーケンシャルモデル指定
学習モデルの構築
ニューラルネットワークの構築
モデルのコンパイル
学習
学習プロセスのグラフ
検証
予測
学習済モデルの保存
保存後ファイルの確認
学習済モデルのダウンロード
Raspberry Piで手書き数字の認識、文字認識
まとめ
05-02 TensorFlow+FashionMNISTでFashion認識
Fashion MNISTとは
TensorFlowのバージョン
Fashion MNISTデータの取得
データセットを見る
検証データの確認
データセットの一部を描画する
調理手順
設定
学習モデルに合わせてデータ調整
学習モデルの構築
モデルのコンパイル
学習
学習プロセスのグラフ
検証
予測
学習済モデルの保存
まとめ
05-03 TensorFlowで花認識ウェブアプリ
retrain(転移学習)とは
花のデータセットをダウンロードする
花のデータセットを解凍する
学習(retrain)プログラムを入手する
フォルダの内容を確認する
調理手順
転移学習開始
学習の結果を確認する
予測用のプログラムをダウンロードする
テストを実施する
アップロードした花の写真でテストする
学習済のファイルをダウンロードする
Raspberry Piで手書き入力の部分を用意する
まとめ
05-04 TensorFlowでペットボトルと空き缶分別
データの収集をする
ペットボトルの画像を用意する
空き缶の画像を用意する
ペットボトル写真の処理
ペットボトル画像を確認するために表示する
意図しない写真ファイルを削除する(クレンジング処理)
ペットボトル画像の水増し
水増ししたペットボトルの画像を確認する
調理手順
学習プログラムをダウンロードする
用意したデータをtarget_folderにコピーする
ペットボトルのデータをコピーする
空き缶のデータをコピーする
転移学習開始
予測するプログラムをダウンロードする
学習済モデルを使う
学習済のモデルファイルをダウンロードする
まとめ
05-05 YOLOで物体検出
物体検出とは
YOLOとは
調理手順
daskのインストール
CPythonのインストール
darknetのclone
作業の場所を移動する
YOLOをコンパイルする
YOLO3のモデルをダウンロードする
物体検出を試してみよう
もう1枚テストする
まとめ
05-06 ハードウェアの拡張による人物検出
Movidius NCSとは
調理手順
システムを最新の状態にする
swapfileサイズを大きくする
ncsdkのインストール
TensorFlowのインストール
OpenCVのインストール
サンプルコードの実行
まとめ
05-07 Google AIY Vision Kitで笑顔認識
Google AIY Vision Kitの組み立て
まずGoogle AIY Vision Kitの中身を見てみよう
Google AIY Vision Kitを組み立てる
調理手順
Google AIT Vision Kitの最初の起動
まとめ
05-08 人工知能Cloud APIを利用してキャプション作成
クラウド上のAPIを利用して分類、検出
Azureアカウントの取得
Computer Visionプロジェクトの作成
調理手順
必要なパッケージをインポートする
初期設定
画像のキャプションを取得する関数
写真の指定
結果の表示
画像を表示する
まとめ
第3部 Pythonとオブジェクト指向・Pythonでできるウェブサーバ
第6章 Pythonとオブジェクト指向
06-01 オブジェクト指向プログラミングとは
なぜオブジェクト指向プログラミングなのか
オブジェクトとは
クラスとは
06-02 クラスを実際に作ってみよう
ロボットのクラスを作ってみよう
クラスの定義
コンストラクタ(constructor)
メソッド(method)
属性(property)
インスタンス(instance)
メソッドの呼び出し
クラスの継承
親クラス(parent class)
拡張(メソッドの追加)
メソッドのオーバーライド(method override)
まとめ
第7章 Pythonでできるウェブサーバ
07-01 Flaskアプリケーション開発の準備
Flaskウェブアプリケーションフレームワーク
Flaskのインストール
07-02 アプリケーションの設置
フォルダの作成とapp.pyの設置
ウェブアプリケーションを立ち上げる
まとめ
Amazonで詳しく見る
紹介文
初歩から学べて知識が身に付く。機械学習やRaspberry Piなど活用いろいろ、言語の基本を徹底マスター!
1 Pythonプログラミングを始めるための予備知識
2 Pythonの基礎を学ぼう
3 プログラムの流れを変えたり処理を繰り返したりする
4 組み込み型の活用方法を理解しよう
5 オリジナルの関数を作成する
6 テキストファイルの読み書きを理解しよう
7 オリジナルのクラスを作成する
Amazonで詳しく見る
紹介文
Pythonによるクローリング・スクレイピングの入門から実践までを解説した書籍です。2017年の初版から内容をアップデート、新ライブラリの解説などを追加した増補改訂版です。基本的なクローリングやAPIを活用したデータ収集、HTMLやXMLの解析から、データ取得後の分析や機械学習などの処理まで解説。データの収集・解析、活用がしっかりと基本から学べます。Webサービスの開発やデータサイエンスや機械学習分野で実用したい人はもちろん、基礎から解説しているのでPython初心者でもつまずかずに学習できます。多数のライブラリ、強力なフレームワークを活用して高効率に開発できます。
1. クローリング・スクレイピングとは何か
1-1. 本書が取り扱う領域
1-2. Wgetによるクローリング
1-3. スクレイピングに役立つUnixコマンド
1-4. gihyo.jpのスクレイピング
1-5. まとめ
2. Pythonではじめるクローリング・スクレイピング
2-1. Pythonを使うメリット
2-2. Pythonのインストールと実行
2-3. Pythonの基礎知識
2-4. Webページを取得する
2-5. Webページからデータを抜き出す
2-6. データをファイルに保存する
2-7. Pythonによるスクレイピングの流れ
2-8. URLの基礎知識
2-9. まとめ
3. ライブラリによる高度なクローリング・スクレイピング
3-1. HTMLのスクレイピング
3-2. XMLのスクレイピング
3-3. データベースに保存する
3-4. クローラーとURL
3-5. Pythonによるクローラーの作成
3-6. まとめ
4. 実用のためのメソッド
4-1. クローラーの特性
4-2. 収集したデータの利用に関する注意
4-3. クロール先の負荷に関する注意
4-4. 繰り返しの実行を前提とした設計
4-5. まとめ
5. クローリング・スクレイピングの実践とデータの活用
5-1. データセットの取得と活用
5-2. APIによるデータの収集と活用
5-3. 時系列データの収集と活用
5-4. オープンデータの収集と活用
5-5. Webページの自動操作
5-6. JavaScriptを使ったページのスクレイピング
5-7. 取得したデータの活用
5-8. まとめ
6. フレームワーク Scrapy
6-1. Scrapyの概要
6-2. Spiderの作成と実行
6-3. 実践的なクローリング
6-4. 抜き出したデータの処理
6-5. Scrapyの設定
6-6. Scrapyの拡張
6-7. クローリングによるデータの収集と活用
6-8. 画像の収集と活用
6-9. まとめ
7. クローラーの継続的な運用・管理
7-1. クローラーをサーバーで実行する
7-2. クローラーの定期的な実行
7-3. クローリングとスクレイピングの分離
7-4. クローリングの高速化・非同期化
7-5. クラウドを活用する
7-6. まとめ
Appendix. Vagrantによる開発環境の構築
A-1. VirtualBoxとVagrant
A-2. CPUの仮想化支援機能を有効にする
A-3. VirtualBoxのインストール
A-4. Vagrantのインストール
A-5. 仮想マシンを起動する
A-6. ゲストOSにSSH接続する
A-7. Pythonのスクリプトファイルを実行する
A-8. Linuxの基本操作
A-9. Vagrantで仮想マシンを操作するコマンド
Amazonで詳しく見る
紹介文
「競合商品のデータを毎回探すのは大変」
「常にチェックしている売上ランキングをまとめおきたい」
「情報を集めるのに手間取って、じっくり分析する時間がない」
こんな情報収集の悩みは、プログラムを使えば解決できます!
多くのビジネスにおいて、自社や他社の商品情報や人気トレンド、口コミ評判などのデータ収集・分析は欠かせません。しかし、膨大なネット上の情報を手作業で集めるのは容易ではありません。データ収集に時間がかかりすぎてしまい、本来の目的である分析に時間をかけられないケースも多いでしょう。
そんなときは、データ収集をプログラムで自動化してみましょう!
本書では、プログラミング言語Python(パイソン)を使ったスクレイピングという技術で、WebページやSNSなどから自動でデータ収集する方法を学べます。初心者でも実践できるように、プログラミングやWebページのしくみの知識は必要最小限に抑え、練習用のページやサンプルのプログラムでスクレイピングを実践しながら学びます。練習用ページなどには、実際のビジネス利用シーンをイメージしやすい事例を用意しました。
プログラミングで業務を自動化・効率化したいビジネスパーソン必見の1冊です!
●はじめに
■第1章 データ収集をハックする
■■1-1 プログラムを使って自動でデータを集める
■■■データを集める重要性が高まっている自動収集の必要性とメリット
■■■本書で取り上げるトピック
■■1-2 自動で集められるデータとは
■■■データの分類を知る
■■■データの提供方法を知る
■■■本書で取り上げる自動収集データ
■■1-3 自動収集の注意点を押さえる
■■■1. サイトの利用規約を守る
■■■2. データ取得には十分な間隔をあけて、サーバーに負担をかけすぎない
■■■3. 取得したデータの利用に際しては、著作権や個人情報を侵害しない
■第2章 Webからデータを集める準備
■■2-1 データ収集に役立つPython
■■2-2 Pythonが使える環境を準備する
■■■Anacondaを準備する
■■■Jupyter Notebookの使い方を理解する
■■■Jupyter Notebookを起動する
■■■Pythonのプログラムを実行する
■■■エディットモード・コマンドモードを理解する
■■■ショートカットキーを理解する
■■■作成したノートブックを保存する
■■■Jupyter Notebookを終了する
■■2-3 Python超入門
■■■データ型と変数を理解する
■■■数値計算をする
■■■文字や数値を画面に出力する(print関数)
■■■データ構造を押さえる(リスト、タプル、辞書)
■■■条件で処理を分岐させる(if文、else)
■■■くり返し処理を押さえる(for文、while文)
■■■関数で何度もおこなう処理をまとめる
■■■ライブラリの使い方を理解する
■第3章 データ自動収集のしくみを押さえる
■■3-1 Webページ・WebAPIのしくみを理解する
■■■Webページの通信方法を押さえる
■■■HTMLを理解しよう
■■■HTMLタグの種類を押さえる
■■■HTMLタグの属性を押さえる
■■■HTMLの階層構造を理解する
■■■CSSを理解しよう
■■■JavaScriptを知ろう
■■■Web APIを理解しよう
■■3-2 データのフォーマットや種類を理解する
■■■フォーマットの種類と特徴
■■■データのおもな種類とオープンデータ
■■3-3 Webページからデータを取得する方法を理解する
■■■データ取得の3ステップ
■■3-4 ステップ1:HTMLをダウンロードする
■■■requestsをインストールする
■■■requestsの使い方を理解する
■■■ダウンロードしたHTMLの内容を確認する
■■3-5 ステップ2:データを抽出する
■■■Beautiful Soupをインストールする
■■■Beautiful Soupの使い方を理解する
■■■Chrome開発者ツールの使い方を理解する
■■■データを抽出する3つの方法
■■■抽出方法1 要素を検索して取り出す
■■■抽出方法2 HTMLの階層を移動して探し出す
■■■抽出方法3 CSSセレクタを用いて要素を指定する
■■■3つの抽出方法の選び方
■■■3つの方法を組み合せて使う
■■■CSSセレクタをもっと理解する
■■3-6 ステップ3:データを保存する
■■■テキストデータを保存する
■■■バイナリデータ(画像、PDF、EXCELファイル)を保存する
■■3-7 Webページから実際にデータを取得する
■■■練習用ページを確認する
■■■作成するプログラムを理解する
■■■データ取得方法を検討する
■■■一覧・詳細ページからデータを取得する
■■■取得したデータを保存する
■第4章 Pythonでデータを自動で集める
■■4-1 売れ筋ランキング情報を収集しよう
■■■売れ筋でマーケットトレンドを把握しよう
■■■Webページからの情報収集の準備
■■■データ取得方法を検討する
■■■ライブラリをインポートする
■■■一覧ページからデータを取得する
■■■詳細ページからデータを取得する
■■4-2 人気商品の画像情報を集めよう
■■■活用の幅が広がる画像情報
■■■画像情報収集の準備
■■■データ取得方法を検討するライブラリをインポートする
■■■一覧ページからデータを取得する
■■■一覧ページから取得したデータを保存する
■■■画像データをダウンロード・保存する
■■4-3 メディアから記事情報を収集しよう
■■■メディアから定性情報を収集しよう
■■■記事情報収集の準備
■■■データ取得方法を検討する
■■■ライブラリをインポートする
■■■記事データを取得する
■■■取得した記事データを保存する
■■4-4 オープンデータの統計情報を収集しよう
■■■オープンデータで自社サービスを強化しよう
■■■政府統計の総合窓口e-Statとは
■■■e-Stat APIの基本的な使い方
■■■統計データを取得する
■■■取得した統計データを保存する
■■4-5 TwitterAPIから口コミ情報を集めよう
■■■口コミ情報でサービス・製品の改善点を分析しよう
■■■Twitter APIを準備する
■■■Twitter APIの基本的な使い方
■■■ツイートデータを取得する取得したツイートデータを保存する
■第5章 集めたデータを活用しやすい形にする
■■5-1 データ活用までに必要な準備
■■5-2 保存したデータを取り出す
■■■データ表の形式を理解する
■■■CSVファイルを読み込む
■■■読み込んだデータを確認する
■■5-3 データを整形する
■■■不要な列データを取り除く
■■■欠損データに対応する
■■■データ型を変換する
■■■整形したデータを保存する
■■5-4 データをグラフで表示する
■■■必要な行だけを取り出す
■■■データフレームを結合する
■■■統計値を取得する
■■■グラフに表示する
●索引
●著者プロフィール
Amazonで詳しく見る
紹介文
Pythonの作者GUido氏自らが書き下ろしたPython入門者のための手引書。言語とシステムの基本を解説。
Python初心者必読のチュートリアルが3.5対応で登場!
Pythonの作者Guido氏自らが書き下ろしたPython入門者のための手引書です。Pythonの言語とシステムの基本的な機能やコンセプトを解説します。さらにPythonの特徴的な機能を数多く取り上げて紹介することで、読者がこの言語の雰囲気とスタイルをつかめるよう配慮しています。旧版から新たに文法やライブラリが多く追加されているほか、旧版に記載されていない仮想化についても触れられています。
Amazonで詳しく見る
紹介文
ゲームを作りながらPythonを楽しく学ぶ!
プログラミングを習得する一番効率的な方法、それはゲームを作りながら学ぶこと。
文法だけを学んでも、何に、どうやって使うかわからないままでは、きちんとプログラミングを覚えたとは言えません。
本書の特徴は「プログラミング学習に最適なPythonを使って」、「ゲームを作りながらプログラミングの実践的な考え方を身に付けられる」ことです。
PART1では「Pythonの基礎知識」を学び、PART2ではその知識をもとにpygameを使って「ゲームを作る」2つのパートで構成されています。
「いきなりゲームを作るなんて難しそう!」
そう感じる人もいるかもしれませんが大丈夫。
まずは、サンプルコードを真似しながら手を動かしてプログラムが動くことを実感してみましょう。
Pythonに詳しいやさしいカエルくんがしっかり丁寧に教えてくれます。
サンプルファイルもダウンロードできるから、自分で書いたプログラミングが動かないときもしっかりサポート。
プログラミングで一番大切なことは、命令をたくさん覚えることでも、エラーなく正しく書くことでもありません。
もちろんそれらも大事。でも一番は、「自分で考えたアイデアをカタチにする」ことなんです。
「ゲームってこうやって作るんだ」「シューティングゲームってこうやって動いていたんだ!」
新しい発見をしながら学習した知識は、しっかり身に付きます。
自分で考えたゲームやアイデアを形にできる瞬間は、とても楽しいですよ。
「プログラミングには興味があるけど、どうやって勉強したらいいんだろう?」
「何度も挑戦してるけど難しくて脱落してしまった……」
そんなふうに考えているプログラミング入門者、Python入門者にぜひ手に取っていただきたい1冊です!
【本書で作るゲーム】
PART1ではPythonの基礎を学びながら「体重と身長を入力してBMI値を出す」簡単なアプリのようなものを作っていきます。
PART2ではpygameをインストールして、
・「衝突判定を使ったアクションゲーム」、
・「ボール反射を利用したブロック崩しゲーム」、
・「集大成のシューティングゲーム」
など本格的なゲームを作っていきます。
作れるゲームが増えていくことで感じる「できた!」という達成感は、まるでゲームをクリアしたときのような快感にも似ていますよ。
【本書の特徴】
・ゲームを作りながらPythonとプログラミングの基本が学べる
・Pythonに詳しいカエルくんがやさしく教えてくれる
・『お手本のコードを真似して書く』→『動かす』の積み重ねで知識が定着、しっかり身に付く
・ダウンロードできるサンプルファイルつき
==========================================================
PART 1 Pythonを学ぼう
==========================================================
CHAPTER 1 Pythonってなに?
----------------------------------------------------------
1.1 Pythonを始めよう
1.2 Pythonのインストール
1.3 IDLEでPythonに触れてみよう
1.4 最初の命令はprint
1.5 ファイルを作ってプログラミング
----------------------------------------------------------
CHAPTER 2 プログラムの基本1 順次、変数
----------------------------------------------------------
2.1 プログラムの3つの基本 順次、分岐、反復
2.2 順次 上から順番に、実行する
2.3 変数
2.4 データ型
2.5 ユーザーからの入力はinput
2.6 inputと計算でアプリを作ろう!
----------------------------------------------------------
CHAPTER 3 プログラムの基本2 条件分岐、ランダム
----------------------------------------------------------
3.1 分岐 もしも~だったら、○○する
3.2 ランダム コンピュータのサイコロ
3.3 if文とランダムでアプリを作ろう
----------------------------------------------------------
CHAPTER 4 プログラムの基本3 反復、たくさんのデータ
----------------------------------------------------------
4.1 たくさんのデータはリストに入れて使う
4.2 反復 同じ処理をくり返す
4.3 range くり返す範囲を決める
4.4 リストでアプリを作ろう
----------------------------------------------------------
CHAPTER 5 プログラムをまとめる 関数、ループ
----------------------------------------------------------
5.1 関数 仕事をひとまとめにする
5.2 モジュールで分割
5.3 ループ 条件を満たす間くり返す
5.4 関数とループでアプリを作ろう
==========================================================
PART 2 ゲームを作ろう
==========================================================
CHAPTER 1 pygameで絵を描こう
----------------------------------------------------------
1.1 pygameでゲームを作ろう
1.2 pygameの基本
1.3 図形や、文字、画像を描こう
1.4 グラフィックスを動かそう
----------------------------------------------------------
CHAPTER 2 キーやマウスで動かそう
----------------------------------------------------------
2.1 キーで絵を動かそう
2.2 マウスで絵を動かそう
2.3 ボタンを作ろう
----------------------------------------------------------
CHAPTER 3 画面の切り換えで紙芝居
----------------------------------------------------------
3.1 1ページを1つの関数にまとめる
3.2 一本道の紙芝居
3.3 枝分かれの紙芝居
----------------------------------------------------------
CHAPTER 4 衝突判定でアクションゲーム
----------------------------------------------------------
4.1 キャラクターを上下左右に移動する
4.2 他のRectとの衝突判定
4.3 複数のRectとの衝突判定
4.4 ワナをたくさんばらまく
4.5 ワナと衝突したらゲームオーバー
4.6 ゴールと衝突したらゲームクリア
4.7 追いかけてくるオバケ登場!
----------------------------------------------------------
CHAPTER 5 ボールを反射してブロック崩し
----------------------------------------------------------
5.1 ボールをバーで打ち返す
5.2 ボールが画面の下に移動したら、ゲームオーバー
5.3 ブロックをたくさん並べる
----------------------------------------------------------
CHAPTER 6 ブロック崩しから、シューティングゲームへ
----------------------------------------------------------
6.1 自機を左右に移動
6.2 UFOが落下する
6.3 自機とUFOが衝突したら、ゲームオーバー
6.4 弾とUFOが衝突したら、UFOが消える
6.5 星を降らせて、スコアを追加
==========================================================
APPENDIX 巻末付録 Pygameリファレンス
==========================================================
・Pygameの命令一覧
・色の名前リストプログラム
Amazonで詳しく見る
紹介文
面倒くさい日々の作業は、プログラミングで簡単に処理しよう。
ビジネスの現場で自動化・効率化を実現する入門書の決定版!
本書は日常業務の効率化・自動化を目標に、「Python」というプログラミング言語でビジネス用のアプリケーション・ソフトウェア開発を学ぶ入門書です。
効率化や自動化、あるいはビジネスソフトという言葉を耳にすると、プログラミング未経験者や初心者の方は難しそうと感じるかもしれませんが、心配は無用です。
Pythonは、とても学びやすいプログラミング言語です。本書は、初学者が理解できるようにプログラミングの基礎から学び始める構成になっています。
また、Pythonや他のプログラミング言語ですでにソフトウェアを開発できるスキルをお持ちで、
「本格的に自動化プログラムを組みたい」「GUIを用いたソフトウェア開発をしたい」という方のために、Pythonのプログラミング・テクニックも網羅しています。
Chapter 1 プログラミングを始めよう!
Section 1-1 Pythonとは?
Section 1-2 ハードウェアとソフトウェア
Section 1-3 作業の自動化について理解しよう!
Section 1-4 プログラミングの準備〜拡張子の表示〜
Section 1-5 Pythonをインストールしよう!
Section 1-6 Pythonを起動しよう!
Column Pythonを優秀な部下にしよう!
Chapter 2 Pythonに色々させてみよう!
Section 2-1 IDLEの使い方
Section 2-2 計算をさせる
Section 2-3 ホームページを開かせる
Section 2-4 カレンダーを出力させる
Section 2-5 シェルウィンドウとエディタウィンドウ
Section 2-6 プログラムの入力と実行
Section 2-7 プログラムの記述ルール
Column プログラミング習得への近道
Chapter 3 プログラミングの基礎知識
Section 3-1 入力と出力
Section 3-2 変数と計算式
Section 3-3 データ型について
Section 3-4 条件分岐
Section 3-5 繰り返し
Column Pythonに九九の表を作らせよう!
Chapter 4 関数とリストについて学ぼう!
Section 4-1 関数を理解する
Section 4-2 関数の定義
Section 4-3 関数の引数と戻り値
Section 4-4 リストを理解する
Section 4-5 二次元リストを理解する
Section 4-6 日時の取得
Section 4-7 ファイル操作
Column CUIでミニゲームを作ろう!
Chapter 5 GUIの基礎知識
Section 5-1 GUIとは?
Section 5-2 ウィンドウを表示する
Section 5-3 ラベルを配置する
Section 5-4 メッセージを配置する
Section 5-5 ボタンを配置する
Section 5-6 ボタンをクリックしたときの処理
Section 5-7 メッセージボックスを表示する
Column サイコロアプリを作ろう!
Chapter 6 GUIの高度な使い方
Section 6-1 1行のテキスト入力欄を配置する
Section 6-2 複数行のテキスト入力欄を配置する
Section 6-3 チェックボタンを配置する
Section 6-4 チェックボタンを操作する
Section 6-5 コンボボックスを配置する
Section 6-6 キャンバスを配置する
Section 6-7 その他のGUI
Section 6-8 複数のウィンドウを扱う
Column キャンバスに画像を表示しよう!
Chapter 7 時計アプリを作ってみよう!
Section 7-1 リアルタイム処理を行う
Section 7-2 グローバル変数とローカル変数を理解する
Section 7-3 日時を表示する
Section 7-4 時計アプリの完成
Section 7-5 時計アプリの応用
Column Pythonに円周率を計算させよう!
Chapter 8 テキストエディタを作ってみよう!
Section 8-1 スクロールバーを設置する
Section 8-2 メニューを作る
Section 8-3 ファイルダイアログの使い方
Section 8-4 ファイルを読み込む
Section 8-5 ファイルを書き込む
Section 8-6 テキストエディタの完成
Section 8-7 半角カタカナを全角に置換する
Column 複数のファイルを自動処理する
Chapter 9 Pythonで仕事を自動化・効率化しよう!
Section 9-1 エクセルファイルを扱う
Section 9-2 CSVファイルを読み込む
Section 9-3 CSVファイルに書き込む
Section 9-4 データをグラフ化する
Section 9-5 データを分析する
Column openpyxlを利用する
特別付録 オブジェクト指向プログラミングを学ぼう!
Appendix 1 オブジェクト指向プログラミングとは?
Appendix 2 クラスの宣言
Appendix 3 オブジェクトを作る
Appendix 4 オブジェクトに機能を持たせる
Appendix 5 複数のオブジェクトを作る
Appendix 6 リストでオブジェクトを作る
Appendix 7 継承とオーバーライド
Amazonで詳しく見る
紹介文
Pythonはここ数年で日本語の書籍も増え、開発現場での利用実績も着実に増えてきています。ご自身の第二、第三の言語の選択肢としてPythonが気になっているという方も多いのではないでしょうか。また、「Pythonを始めてみたけど、実際に業務で利用するには不安が残る」「コードレビューに怯えながらPythonを書いている」という方も多いのではないでしょうか。
本書は、そういった方を対象に、Pythonという言語が持つ機能の実践的な使い方を紹介します。Pythonは、日常的なツールからWeb開発、データ分析、機械学習など分野を問わず利用できる汎用性の高い言語です。本書も同じく、Pythonという言語の仕様やその特徴的な機能、標準ライブラリでできることを中心に扱うため、分野を問わず活用していただけます。
□第1章 Pythonはどのような言語か
1.1 プログラミング言語としての特徴
シンプルで読みやすい動的型付き言語
インデントによるブロックの表現
教育用プログラミング言語ABCの影響
後方互換性の重視
豊富な標準ライブラリ
さまざまな用途での利用
1.2 Pythonの歴史と現況
Python自体の進化
Pythonの誕生
Python 2系でメジャーな言語に
Python 3系への移行
現在のPythonの状況
Pythonを取り巻く環境の変化
1.3 Pythonコミュニティの特徴
コミュニティ主体のOSS
PyCon ── Pythonユーザーが集まるカンファレンス
PEPの存在
PEP 8:Style Guide for Python Code ── Python標準のスタイルガイド
PEP 20:The Zen of Python ── Pythonの設計ガイドライン
PEP 257:Docstring Conventions ── ドキュメントの書き方
1.4 本章のまとめ
□第2章 Pythonのインストールと開発者向けの便利な機能
2.1 Pythonのインストール
OSにプリインストールされているPython
macOSでの利用
公式インストーラを利用したインストール
Windowsでの利用
公式インストーラを利用したインストール
Ubuntuでの利用
APTを利用したインストール
そのほかのLinuxでの利用
Dockerの利用
公式イメージを利用したPythonの実行
スクリプトファイルの実行
2.2 Pythonの実行
本書で利用するpythonコマンド
Pythonインタプリタの2つのモード
対話モードのインタプリタ
対話モードの基本的な使い方
対話モードでよく使う組み込み関数
type() ── オブジェクトの型を調べる
dir() ── オブジェクトの属性を調べる
help() ── ヘルプページを表示する
Docstringを使ったヘルプページの作成
スクリプトの実行
モジュールをスクリプトとして実行
pythonコマンドとpython3コマンドの違い
2.3 本章のまとめ
□第3章 制御フロー
3.1 基本となる文法
インデントによるブロックの表現
インデントの幅
pass文 ── 何もしないことの宣言
変数の利用
型の宣言がいらない理由
コメント
コメントとDocstringの違い
3.2 条件分岐
if文 ── 条件を指定した処理の分岐
真となる値、偽となる値
シンプルな条件式
if文でよく使う数値の比較
if文でよく使うオブジェクトの比較
3.3 ループ ── 処理の繰り返し
for文 ── 要素の数だけ処理を繰り返す
for文でよく使う組み込み関数
for文のelse節の挙動
for文での変数のスコープ
while文 ── 条件を指定した処理の繰り返し
while文のelse節の挙動
break文 ── ループを抜ける
continue文 ── 次のループに移る
3.4 例外処理
try文 ── 例外の捕捉
except節 ── 例外が発生したときのみ実行する
else節 ── 例外が発生しなかったときのみ実行する
finally節 ── 例外の有無にかかわらず必ず実行する
raise文 ── 意図的に例外を発生させる
独自の例外を定義する
with文 ── 定義済みのクリーンアップ処理を必ず実行する
3.5 本章のまとめ
□第4章 データ構造
4.1 None ── 値が存在しないことを表現する
条件式でのNoneの利用
4.2 真理値 ── 真/偽を扱う
bool型 ── 真理値を扱う型
ブール演算
x or y ── xが真ならx、そうでなければyを返す
x and y ── xが真ならy、そうでなければxを返す
not x ── xが真ならFalse、そうでなければTrueを返す
4.3 数値
数値どうしの演算
数値を扱う組み込み型
int型 ── 整数を扱う型
float型 ── 浮動小数点数を扱う型
complex型 ── 複素数を扱う型
条件式での数値の利用
4.4 文字列
str型 ── 文字列を扱う型
文字列の演算
for文での文字列の挙動
条件式での文字列の利用
文字列内での変数の利用
f-string ── 式を埋め込める文字列リテラル
format() ── 引数に渡した変数で文字列を置換するメソッド
%演算子 ── 一番古い文字列フォーマット
str型とよく似たbytes型
str.encode()とbytes.decode()を利用した相互変換
Python 2系とPython 3系の文字列の違い
4.5 配列 ── 要素を1列に並べて扱う
list型 ── 可変な配列を扱う型
要素の追加と削除
インデックスによる要素へのアクセス
スライスによるリストの切り出し
tuple型 ── 不変な配列を扱う型
タプル作成時の注意点
インデックスによる要素へのアクセス
スライスによるタプルの切り出し
for文での配列の挙動
条件式で使える配列の性質
タプルとリストの使い分け
4.6 辞書 ── キーと値のセットを扱う
dict型 ── 辞書を扱う型
要素の追加と削除
キーによる要素へのアクセス
キーに使えるオブジェクトの条件
for文での辞書の挙動
条件式で使える辞書の性質
4.7 集合 ── 一意な要素の集合を扱う
set型 ── 可変な集合を扱う型
要素の追加と削除
frozenset型 ── 不変な集合を扱う型
集合の演算 ── 和、積、差、対称差
for文での集合の挙動
条件式で使える集合の性質
4.8 内包表記 ── 効率的なシーケンスの生成
リスト内包表記 ── 効率的なリストの生成
ネストしたリストの内包表記
if文のある内包表記
そのほかの内包表記
4.9 そのほかの型を表す概念
可変オブジェクト ── 定義後に値を変更できるオブジェクト
不変オブジェクト ── 定義後に値を変更できないオブジェクト
コンテナオブジェクト ── ほかのオブジェクトへの参照を持つオブジェクト
イテラブルなオブジェクト ── for文で使えるオブジェクト
呼び出し可能オブジェクト ── ()を付けて呼び出せるオブジェクト
4.10 本章のまとめ
□第5章 関数
5.1 関数 ── 関連する処理をまとめる
関数の定義と実行
引数を取る関数
関数はオブジェクト
関数の戻り値
returnがない場合の戻り値
関数のさまざまな引数
位置引数 ── 仮引数名を指定しない実引数の受け渡し
キーワード引数 ── 仮引数名を指定した実引数の受け渡し
デフォルト値のある引数 ── 実引数を省略できる仮引数
可変長の位置引数
可変長のキーワード引数
キーワードのみ引数 ── 呼び出し時に仮引数名が必須になる引数
位置のみ引数 ── 呼び出し時に仮引数名を指定できない引数
引数リストのアンパック ── リストや辞書に格納された値を引数に渡す
関数のDocstring
5.2 lambda式 ── 無名関数の作成
lambda式の定義と実行
lambda式の使いどころ
5.3 型ヒント ── アノテーションで関数に型情報を付与する
型情報を付与するのメリット
型情報の付与
変数への型情報の付与
型ヒントの活用例 ── 静的解析ツールの利用
5.4 本章のまとめ
□第6章 クラスとインスタンス
6.1 Pythonのクラス機構
classキーワードによるクラスの定義
インスタンスの作成
6.2 インスタンス ── クラスをもとに生成されるオブジェクト
インスタンスメソッド ── インスタンスに紐付くメソッド
インスタンス変数 ── インスタンスが保持する変数
インスタンスの初期化
__init__() ── インスタンスの初期化を行う特殊メソッド
引数を渡してインスタンス化する
__init__()と__new__()の違い ── イニシャライザとコンストラクタ
__new__()の注意点
プロパティ ── インスタンスメソッドをインスタンス変数のように扱う
property ── 値の取得時に呼び出されるメソッド
setter ── 値の設定時に呼び出されるメソッド
クラスやインスタンスのプライベートな属性
アンダースコアから始まる属性
アンダースコア2つから始まる属性
プライベートな属性に対するPythonコミュニティの考え方
6.3 クラス ── インスタンスのひな型となるオブジェクト
クラス変数 ── クラスオブジェクトが保持する変数
クラス変数にはインスタンスからも参照可能
クラスメソッド ── クラスに紐付くメソッド
スタティックメソッド ── 関数のように振る舞うメソッド
6.4 クラスの継承
メソッドのオーバーライドとsuper()による基底クラスへのアクセス
すべてのオブジェクトはobjectクラスのサブクラス
多重継承 ── 複数の基底クラスを指定する
多重継承の注意点
属性__mro__を利用したメソッド解決順序の確認
6.5 本章のまとめ
□第7章 モジュールとパッケージ、名前空間とスコープ
7.1 モジュール ── コードを記述した.pyファイル
モジュールの作成
モジュールのインポート
python3コマンドから直接実行する
引数を取得する
直接実行したときのみ動くコード
if __name__ == '__main__':ブロックの意味
変数__name__に格納される値
7.2 パッケージ ── モジュールの集合
パッケージの作成
パッケージ内のモジュールのインポート
__init__.py ── パッケージの初期化を行う
__init__.pyの便利な使い方
import文の比較
import文のみを利用したインポート
from節を利用して特定の属性をインポートする
.を利用した相対インポート
ワイルドカードを利用して複数の属性を一括インポートする
as節による別名の付与
7.3 インポートのしくみ
モジュール検索の流れ
sys.path ── モジュールの検索パス
検索パスの優先度
PYTHONPATH ── sys.pathに検索パスを追加する
7.4 名前空間と変数のスコープ
名前空間 ── 名前とオブジェクトのマッピング
名前空間の活用
スコープ ── 直接アクセス可能な領域
ローカルスコープ ── 関数内に閉じたスコープ
グローバルスコープ ── モジュールトップレベルのスコープ
ビルトインスコープ ── 組み込みオブジェクトのスコープ
エンクロージングスコープ ── 現在のローカルスコープの1つ外側のスコープ
7.5 本章のまとめ
□第8章 組み込み関数と特殊メソッド
8.1 組み込み関数 ── いつでも利用できる関数
オブジェクトの型を調べる関数
isinstance()、issubclass() ── 動的な型判定
callable() ── 呼び出し可能オブジェクトを判定
オブジェクトの属性に関する関数
hasattr() ── オブジェクトの属性の有無を判定
getattr()、setattr()、delattr() ── オブジェクトの属性を操作する
イテラブルなオブジェクトを受け取る関数
zip() ── 複数のイテラブルの要素を同時に返す
sorted() ── イテラブルの要素を並べ替える
filter() ── イテラブルの要素を絞り込む
map() ── すべての要素に関数を適用する
all()、any() ── 真理値を返す
そのほかの組み込み関数
8.2 特殊メソッド ── Pythonが暗黙的に呼び出す特別なメソッド
__str__()、__repr__() ── オブジェクトを文字列で表現する
__bool__() ── オブジェクトを真理値で評価する
__call__() ── インスタンスを関数のように扱う
属性への動的なアクセス
__setattr__() ── 属性への代入で呼び出される
__delattr__() ── 属性の削除で呼び出される
__getattr__()、__getattribute__() ── 属性アクセスで呼び出される
イテラブルなオブジェクトとして振る舞う
__iter__() ── イテレータオブジェクトを返す
__next__() ── 次の要素を返す
コンテナオブジェクトとして振る舞う
__getitem__()、__setitem__() ── インデックスやキーによる操作
__contains__() ── オブジェクトの有無を判定する
そのほかの特殊メソッド
8.3 本章のまとめ
□第9章 Python特有のさまざまな機能
9.1 ジェネレータ ── メモリ効率のよいイテラブルなオブジェクト
ジェネレータの具体例
ジェネレータの実装
ジェネレータ関数 ── 関数のように作成する
ジェネレータ式 ── 内包表記を利用して作成する
yield from式 ── サブジェネレータへ処理を委譲する
ジェネレータを利用する際の注意点
len()で利用する場合
複数回利用する場合
ジェネレータの実例 ── ファイルの内容を変換する
そのほかのユースケース
9.2 デコレータ ── 関数やクラスの前後に処理を追加する
デコレータの具体例
functools.lru_cache() ── 関数の結果をキャッシュする関数デコレータ
dataclasses.dataclass() ── よくある処理を自動追加するクラスデコレータ
デコレータの実装
シンプルなデコレータ
引数を受け取る関数のデコレータ
デコレータ自身が引数を受け取るデコレータ
複数のデコレータを同時に利用する
functools.wraps()でデコレータの欠点を解消する
デコレータの実例 ── 処理時間の計測
そのほかのユースケース
9.3 コンテキストマネージャー ── with文の前後で処理を実行するオブジェクト
コンテキストマネージャーの具体例
コンテキストマネージャーの実装
__enter__()、__exit__() ── with文の前後に呼ばれるメソッド
with文と例外処理
asキーワード ── __enter__()の戻り値を利用する
contextlib.contextmanagerでシンプルに実装する
コンテキストマネージャーの実例 ── 一時的なログレベルの変更
そのほかのユースケース
9.4 デスクリプタ ── 属性処理をクラスに委譲する
デスクリプタの具体例
デスクリプタの実装
__set__()を実装する ── データデスクリプタ
__get__()のみを実装する ── 非データデスクリプタ
デスクリプタの実例 ── プロパティのキャッシュ
そのほかのユースケース
9.5 本章のまとめ
□第10章 並行処理
10.1 並行処理と並列処理 ── 複数の処理を同時に行う
逐次処理で実行する
並行処理で実行する
並列処理で実行する
Pythonと並行処理
並行処理と非同期処理の関係
10.2 concurrent.futuresモジュール ── 並行処理のための高水準インタフェース
FutureクラスとExecutorクラス ── 非同期処理のカプセル化と実行
ThreadPoolExecutorクラス ── スレッドベースの非同期実行
スレッドベースの非同期実行が効果的なケース
ThreadPoolExecutorクラスを利用したマルチスレッド処理の実例
逐次処理で実装
マルチスレッドで実装
マルチスレッドの注意点
マルチスレッドでの動作に問題がある実装
スレッドセーフな実装
ProcessPoolExecutorクラス ── プロセスベースの非同期実行
プロセスベースの非同期実行が効果的なケース
ProcessPoolExecutorクラスを利用したマルチプロセス処理の実例
逐次処理で実装
マルチプロセスで実装
マルチプロセスの注意点
pickle化できるオブジェクトを使う
乱数の取り扱い方
10.3 asyncioモジュール ── イベントループを利用した並行処理を行う
コルーチン ── 処理の途中で中断、再開する
async構文を使ったコルーチンの実装
await構文を使ったコルーチンの呼び出しと中断
コルーチンの並行実行
コルーチンのスケジューリングと実行
イベントループ ── asyncioモジュールの中心的な機構
タスク ── スケジューリングしたコルーチンをカプセル化
非同期I/O ── イベントループに適したI/O処理
同期I/Oを利用する処理のタスク化
asyncioモジュールとHTTP通信
aiohttp ── 非同期I/Oを利用するHTTPクライアント兼サーバライブラリ
10.4 本章のまとめ
□第11章 開発環境とパッケージの管理
11.1 仮想環境 ── 隔離されたPython実行環境
venv ── 仮想環境作成ツール
venvのしくみ
仮想環境の有効化、無効化
仮想環境内でのpythonコマンド
仮想環境内でパッケージを利用する
複数のプロジェクトを並行して開発する
11.2 パッケージの利用
pip ── パッケージ管理ツール
基本的な使い方
パッケージのインストール
パッケージのアンインストール
PyPI ── Pythonパッケージのリポジトリ
ソースコードリポジトリにあるパッケージをインストールする
ローカルにあるパッケージをインストールする
インストール済みのパッケージをアップデートする
現在のユーザー用にインストールする
環境の保存と再現 ── requirementsファイルの活用
現在の環境の情報をrequirementsファイルに保存する
requirementsファイルから環境を再現する
開発環境でのみ利用するパッケージの管理
依存パッケージのアップデート
11.3 パッケージの作成
setup.py ── パッケージの情報をまとめたファイル
パッケージのディレクトリ構成
setup.pyの基本
PyPIへの登録を考慮する
依存パッケージを考慮する
.py以外のファイルを考慮する
PyPIへのパッケージの登録
PyPIのアカウント作成
配布物の作成
配布物のアップロード
11.4 本章のまとめ
□第12章 ユニットテスト
12.1 ユニットテストの導入
単一モジュールのテスト
テスト実行コマンドの簡略化
パッケージのテスト
ディレクトリ構成
サンプルアプリケーションの作成
12.2 unittestモジュール ── 標準のユニットテストライブラリ
テストケースの実装
前処理、後処理が必要なテストケース
テストの実行と結果の確認
テスト失敗時の結果
テスト失敗時の結果を抑制する
特定のテストのみを実行する
テストケースを直接指定
テストディスカバリ
12.3 unittest.mockモジュール ── モックオブジェクトの利用
モックオブジェクトの基本的な使い方
任意の値を返す呼び出し可能オブジェクトとして利用する
アサーションメソッドで呼び出され方をテストする
patchを使ったオブジェクトの置き換え
mockを利用するテストケースの実例
12.4 ユースケース別のテストケースの実装
環境依存のテストをスキップする
例外の発生をテストする
違うパラメータで同じテストを繰り返す
コンテキストマネージャーをテストする
12.5 本章のまとめ
□第13章 実践的なPythonアプリケーションの開発
13.1 作成するアプリケーション
LGTM画像を自動生成するコマンドラインツール
利用する主な外部パッケージ
requests ── HTTPクライアントライブラリ
Click ── コマンドラインツール作成ライブラリ
Pillow ── 画像処理ライブラリ
13.2 プロジェクトの作成
Gitの利用
.gitignoreファイルの作成
GitHubでのソースコード管理
パッケージのひな型作成
lgtmパッケージの作成
テストコードの作成
13.3 継続的インテグレーションの導入
CircleCIでテスト自動化
プロジェクトの追加
config.ymlの追加
テストの実行と結果の確認
13.4 アプリケーションの開発
コマンドライン引数の取得
画像のソース情報とメッセージを受け取る
テストコードの修正
画像の取得
ファイルパスから画像を取得するクラスの実装
URLから画像を取得するクラスの実装
検索キーワードから画像を取得するクラスの実装
画像を取得するクラスの利用
画像処理
文字列を画像上に描画する最小限の実装例
文字列を中央に最適なサイズで描画する
各処理の呼び出し
13.5 コマンドとして実行する
setup.pyの作成
entry_points ── スクリプトインタフェースの登録を行う引数
動かしてみよう
13.6 本章のまとめ
Amazonで詳しく見る
紹介文
日常業務でよく直面する面倒で退屈な作業を、Pythonと豊富なモジュールを使って自動化!ベストセラーの改訂版。
和書5万部突破のベストセラー書の改訂版!
一歩先行くハイパフォーマンスなビジネスパーソンからの圧倒的な支持を獲得し、自作RPA本の草分けとして大ヒットしたベストセラー書の改訂版。劇的な「業務効率化」「コスト削減」「生産性向上」を達成するには、単純な繰り返し作業の自動化は必須です。本書ではWordやExcel、PDF文書の一括処理、Webサイトからのダウンロード、メールやSMSの送受信、画像処理、GUI操作といった日常業務でよく直面する面倒で退屈な作業を、Pythonと豊富なモジュールを使って自動化します。今回の改訂では、GmailやGoogleスプレッドシートの操作、Pythonと各種モジュールの最新版への対応、演習等を増補しています。日本語版では、PyInstallerによるEXEファイルの作成方法を巻末付録として収録しました。
Amazonで詳しく見る
紹介文
初心者でも大丈夫!アプリ開発を体験してみよう!
Pythonで
デスクトップアプリ開発を
体験してみよう!
【初心者でもできる!デスクトップアプリ開発を一緒に体験しよう】
Pythonの基礎知識はあるけど、
「アプリ開発って初心者には難しそう」
「プログラムで何か残るものを作ってみたい」
と思っていませんか?
本書はそうした方に向けて、初心者にも簡単に作れる方法を使ってデスクトップアプリ開発の基本をやさしく解説します。スマホアプリ、Webアプリに比べて、手軽に取り組めますので挫折することなく学習できます。本書を読んだあとは、スマホアプリやWebアプリ開発に挑戦してみてください。
【Python2年生について】
「Python2年生」は、「Python1年生」を読み終えた方を対象とした入門書です。ある程度、技術的なことを盛り込み、本書で扱う技術について身につけてもらいます。
『Python2年生 スクレイピングのしくみ』(ISBN:9784798161914)
『Python2年生 データ分析のしくみ』(ISBN:9784798164960)
も刊行されています。
【対象読者】
デスクトップアプリの作り方を知りたい初心者
【本書のポイント】
ヤギ博士&フタバちゃんと一緒に、デスクトップアプリ開発の考え方から丁寧に解説。デスクトップアプリ開発をする時に必要な前提知識からはじまり、デスクトップアプリ作りの基本、応用的なデスクトップアプリ、そしてゲームアプリ開発まで解説します。
【著者プロフィール】
森 巧尚(もり・よしなお)
アプリの開発や、技術書や電子工作マガジンなどでの執筆活動。関西学院大学非常勤講師、関西学院高等部非常勤講師、成安造形大学非常勤講師、プログラミングスクールコプリ講師など、プログラミングに関する幅広い活動を行っている。近著に、『Python1年生 第2版』、『Python3年生機械学習のしくみ』、『Python2年生 スクレイピングのしくみ』、『Python2年生 データ分析のしくみ』、『Java1年生』、『動かして学ぶ!Vue.js開発入門』(いずれも翔泳社)、『楽しく学ぶ アルゴリズムとプログラミングの図鑑』(マイナビ出版)などがある。
第1章 Pythonでアプリを作ろう
LESSON 01 デスクトップアプリってなに?
LESSON 02 Pythonをインストールしよう
LESSON 03 tkinterでアプリを作ろう
LESSON 04 PySimpleGUIでアプリを作ろう
第2章 アプリ作りの基本
LESSON 05 アプリの作り方を理解しよう
LESSON 06 配色を選べるよ
LESSON 07 レイアウトで画面を作ろう
第3章 計算アプリを作ろう
LESSON 08 変数で文字列を作るなら、f文字列が便利
LESSON 09 割り勘アプリ
LESSON 10 BMI値計算アプリ
LESSON 11 出生の秘密アプリ
LESSON 12 干支調べアプリ
第4章 時計アプリを作ろう
LESSON 13 時間を測ろう
LESSON 14 時計アプリ
LESSON 15 ストップウォッチアプリ
LESSON 16 時間割アプリ
第5章 ファイル操作アプリを作ろう
LESSON 17 ファイルの読み書きをしよう
LESSON 18 テキストエディタアプリ
LESSON 19 画像を表示するアプリ
LESSON 20 画像の加工アプリ
LESSON 21 QRコードメーカーアプリ
第6章 ゲームアプリを作ろう
LESSON 22 おみくじアプリ
LESSON 23 じゃんけんアプリ
LESSON 24 足し算ゲームアプリ
LESSON 25 数当てゲームアプリ
LESSON 26 31ゲームアプリ
LESSON 27 これから先は、どうしたらいいの?
Amazonで詳しく見る
紹介文
卓越したPythonプログラマになるための必読書
本書は、Pythonを使って仕事をしている開発者が普段どのようなツールやテクニックを用いて仕事をしているのか、また開発者が実際に現場で用いているベストプラクティスについて解説した書籍です。本書を読むことで、先進的なPythonプログラマが日常的に使用している開発ノウハウを学ぶことができます。
第1章 現在のPythonのステータス
第2章 構文ベストプラクティス ― クラス以外
第3章 構文ベストプラクティス ― クラスの世界
第4章 良い名前を選ぶ
第5章 パッケージを作る
第6章 コードをデプロイする
第7章 他言語によるPythonの拡張
第8章 コードの管理
第9章 プロジェクトのドキュメント作成
第10章 テスト駆動開発
第11章最適化 ― 一般原則とプロファイリングテクニック
第12章最適化 ― いくつかの強力な解決方法
第13章 並行処理
第14章 Pythonのためのデザインパターン
Amazonで詳しく見る
紹介文
バックグラウンドに数学的な知識がなくても理解できるように書かれた、Pythonを使った機械学習の入門書。
数学の知識がなくても読み進められる、理論だけでなく実践面も重視した機械学習の入門書!
バックグラウンドに数学的な知識がなくても理解できるように書かれた、Pythonを使った機械学習の入門書。Pythonの機械学習用ライブラリの大定番、scikit-learnの開発に関わる著者が、scikit-learnを使った機械学習の方法を、ステップバイステップで解説します。最初に実践について述べて後から理論を補強するスタイルで、理解しやすいように工夫されています。理論面と実践面のバランスが良く、モデルの評価と改善について多くの紙面を割くなど、類書にはない特徴を備えています。
Amazonで詳しく見る
紹介文
マヂカルラブリーの野田クリスタルさんと共にゲーム作りを学べる超初心者向けプログラミング本の登場です!
本書では、野田クリスタルさんがこの本のためだけに考案した“野田ゲー”の作り方を初心者の方にもわかりやすく画像付きで解説しています。
紹介されている7種類のゲームは、すべて本書でしかプレイすることができないオリジナルタイトルとなっています。
付属のCDROMには完成版のゲームが収録されているので、ゲーム作りに興味が無い方でもPC一台でゲームを楽しむことができます。
また、ゲームを作るために必要なソースコードやイラストの画像データなどもすべてCDROMに入っているため、誰でもかんたんに本格的なゲーム作りを体験することができます。
人気のプログラミング言語 “Python”を使用しているので、本格的なゲーム作りを大人から子どもまで幅広く楽しむことができ、プログラミングを学ぶきっかけづくりにピッタリです。
野田クリスタルさんと一緒に、ゲーム作りに挑戦してみてはいかがでしょうか。
≪収録ゲーム≫
・カッパの皿を守れ!
・あれ? この人パイセンだっけ?
・ブロック崩し・極
・激ムズ神経衰弱
・スクランブルを超えろ
・じゃんけん2
・ドロボウ退治
【付録】CD-ROM
※発売日、価格および商品仕様等は変更になる場合がございます。
Amazonで詳しく見る
紹介文
全オフィスパーソン必読!
Excelの面倒な操作はパソコンにやらせよう
全オフィスパーソン必読!Excelの面倒な操作はパソコンにやらせよう
ビジネスパーソンが必ず使うExcelは、面倒な手作業が多いのが残念なところ。いくら操作を効率化しても、マウスやキーボードでの作業がなくなりません。決まったセルの範囲を別のシートの決められたところにコピーしたり、毎月のデータをグラフにしたり……。1回だけの作業だけならまだしも、部署別や事業所別にほとんど同じ作業を何度も何度も繰り返すような作業もしばしば。オフィスでのパソコン操作には、こんな無駄がたくさんあってうんざりしている人は多いでしょう。抜本的に解決するは、操作方法を工夫するだけでは追いつきません。
そんな単純で面倒な作業は、Pythonで自動化しましょう! 一度、自分の作業に合わせて自動化すれば、どんなに大量のデータでもパソコンにすべてまかせてOK。自分は他の仕事を進められます。
今から始めるならVBAよりPythonがお薦め。
Pythonを学びながらExcelを効率化するか。
Excel業務を自動化しながらプログラミングも身に付けるか。
どちらにしても“一石二鳥”なのは間違いありません。
プログラミングをやったことがないという人も多いでしょう。普通のビジネスパーソンがプログラミング未経験なのは当たり前。でも、大丈夫。必要な基礎知識をさっと身に付けられるよう、簡潔に解説。ざっと一読するだけでプログラミングの基本が学べます。
「ExcelをPythonで自動化」なんていうと難しそうに聞こえるかもしれません。でも、実はどのプログラムもものすごくシンプル。すでに身に染みついているExcelの手作業を基にしているので、プログラムを読んでいるだけでも「何をやっているか」がリアルにわかるのが本書のミソ。ビジネスパーソンがプログラミングに入門するにはピッタリの題材なのではないでしょうか。
「そうは言っても、プログラムをイチから書くのは大変そう」。そんな心配はご無用です! 本書で取り上げたサンプルプログラムはダウンロードしてすぐに利用可能。実際の業務に即したプログラムなのに加え、どこをどう書き換えれば、手っ取り早く自分の業務に応用できるかもできる限り解説しました。プログラムによっては、ほぼ無改造で即業務に役立てられるものもあります。
「どうせならじっくりプログラミングを勉強したい」。そんな人は各章の後半を重点的に読んでください。各章のサンプルプログラムで使われているテクニックをより詳しく、深く解説。必要に応じて、学習用のシンプルなプログラムも提供しています。簡単なプログラムでも、自分で書いて動かせば学習効果は抜群。基本をしっかり身に付ければ、自分のアイデアを生かしたオリジナルのExcel自動化プログラムも可能です。
ちまちました手作業のせいで無駄な残業をするのはもうたくさん。すぐに業務に役立てたい人にも、ディープに学んで高度に自動化したい人にも、本書がきっとお役に立ちます。
【第1章 Pythonとは】
なぜPythonを使うのがいいのか/VBAではなくPythonを使う理由/Pythonの環境を作る、など
【第2章 Pythonとプログラミングの基本】
Pythonの文法/変数とデータ型。変数名の付け方/様々な演算子/組み込み関数とオリジナルの関数、など
【第3章 Excelシートを扱う】
・定型のExcelデータ(売上伝票)を読み込んで一覧データを作るプログラム
・外部ライブラリ/if文による条件分岐/for構文による繰り返し処理/読み込むセル範囲の指定方法/CSV形式で出力する/ネットワークにあるデータを扱う/パーミッションエラー対策、など
【第4章 集計】
・個々の伝票から売上を集計するプログラムと/受注データをクロス集計するプログラム
・辞書形式のデータ/2次元リストの使い方と初期化/Excel関数の埋め込み/ピボットテーブルもPythonで、など
【第5章 書式設定と印刷】
・集計表に書式を設定するプログラム
・import文の便利な書き方/行と列の非表示を制御/セルの書式設定総まとめ/罫線を自動で引く/ファイル制御に必要はraw文字列/いろいろなセル範囲の指定方法/条件付き書式をPythonで、など
【第6章 グラフ】
・ビジネスでよく使うグラフを作るプログラム
・棒グラフ/積み上げ棒グラフ/折れ線グラフ/面グラフ/レーダーチャート/バブルチャート、など
【第7章 PDF出力と加工】
・複数の納品書データをまとめてPDF化するプログラム
・テキストや画像をレイアウトしてPDFを作成するプログラム
・COMを使ったExcel操作/win32comのインストール/VBAを応用する方法、など
Amazonで詳しく見る
紹介文
プログラミングを勉強してみたけれど、なかなかうまくいかない。
プログラミングに漠然と興味があるけれど何からはじめていいのかわからない。
Progateなどの入門サイトで試してみたけれど、その後何をしたらいいかわからない。
そんなことを思っている方は多いのではないでしょうか?
独学でプログラミングをマスターするためには、実は最も大切なものがあります。
それが、学習方法です。
本書では、プログラミングの参考書を買う前に読んで欲しいプログラミングの学習方法をお伝えしていきます。
受験勉強や資格獲得、語学をマスターするためなどの勉強でこのような経験はないでしょうか?
毎日ひたすら勉強しているのに、まったく成績が上がらない。
他の人と比べて、知識が身につくのが遅い。
これらも全て、学習方法が原因なのです。
かつて僕も、がむしゃらに勉強をしていた時期がありました。
しかし、全く知識が身につかず、結局あきらめてしまったことも多かったです。
しかし、学習方法を改善してからは、知識がすんなり身につくようになったのです。
本書では、これからプログラミングを始める方のために、その学習方法をご紹介します。
またプログラミングを使って作りたいモノ別に、おすすめの学習ルートも紹介しています。
これからプログラミングを始める方、プログラミングを勉強中だけれど、身についているか実感がなく不安に思っている方、にぜひ読んでいただきたい内容となっています。
本書は、学習方法を知らないがゆえにプログラミングを断念してしまう人すべての人を救うために作られました。
そして本書が、一人でも多くの人がプログラミングというスキルを身につけ、自分の武器とするための道しるべとなれば嬉しいです。
第1章 プログラミングがなぜ注目されているのか?
1 IT技術者の需要が高まっている
2 世界は機械化している
3 プログラミング教育が世界で必修化されている
4 課題を解決するための新しい力が求められている
5 プログラミングは自己実現のための最強の武器
第2章 プログラミングって一体なんなのか?
1 プログラミングってそもそも何?
2 プログラミングの知識が必要な職業は?
3 60%の人間にはプログラミングの素質がない?
4 プログラミングで何ができるか
5 プログラミングでできる身近な事例
第3章 プログラミングができるようになるための9つの学習ステップ
1 プログラミングを学ぶ目的を作る
2 自己評価を上げる
3 作りたい目標を決める
4 作りたい物のための知識を得る
5 写経の次は改造して遊ぶ
6 得た知識を組み合わせて作品を作る
7 作品を公開して改善する
8 人に教える
9 インターリーブで学習をより効率的にする
Interlude 誰もやったことがないことが無限にある!
第4章 作品別プログラミング学習ルート
1 Webページを作ろう
2 Webアプリケーションを作ろう
3 作業自動化ツールを作ろう
4 ゲームを作ろう
5 AI(人工知能)を作ろう
6 スマホアプリを作ろう
7 VR・ARを作ろう
8 暗号資産(仮想通貨)を作ろう
第5章 <応用編>テーマ別プログラミング学習法まとめ
1 チーム開発手法
2 プロジェクト管理
3 デバッグ
4 設計
5 セキュリティ
6 サーバ
7 データベース
8 美しいプログラム
9 アルゴリズム
10 コンピュータサイエンス
第6章 プログラミングを楽しく体験してみよう
1 CodeMonkey
2 Hour of CodeのMineCraft
3 CODE COMBAT
第7章 プログラミングコンテストに参加してみよう
1 プログラミングコンテストに参加するメリット
2 国内の有名なプログラミングコンテスト
第8章 ハッカソンに参加してみよう
1 ハッカソンに参加するメリット
2 国内の有名なハッカソン一覧
Amazonで詳しく見る
紹介文
Web界隈やデザイナーに大人気!
【4年連続、売上第1位!】
【全国の書店員がオススメする本(2019年度 CPU大賞)第1位!】
ずっと、一番売れているHTML本!
大反響! 32刷突破!
読者の圧倒的な支持!シリーズ35万部突破の大ヒット!
全国の書店員がオススメする本(CPU大賞)第1位!
2019-2022年、年間売上 第1位!※
Web制作に必要な知識がすべて身につく!
※日販売上げランキング: HTML関連書籍
----------------------------------------------------------------------------
Web界隈やデザイナーに大人気!
Web関連の情報やデザインについて記事が学べる『Webクリエイターボックス』の管理人、
Manaによる渾身のHTML & CSSとWebデザインが学べる本
----------------------------------------------------------------------------
今のWebサイトの作り方が一気に学べる!
・知識ゼロから体系的に学べる!HTMLとCSSの基本
・最新の技術に対応!レスポンシブ、Flexbox、CSSグリッド
・手を動かしながら学べる!プロの現場で役立つテクニック
・コードの知識からデザインのことまで1冊ですべて学べる!
WebクリエイターボックスのManaが教える
Webサイト制作の定番&旬のスキル。
この1冊で必要なことがすべて学べる!
コードもデザインも全部学べる!
●本書の対象読者
・これからWebサイトを作り始める初心者
・HTMLとCSSを基本から学びたい人
・美しいデザインのWebサイトを作りたい人
・Webの最新技術を学びたい人
Web界隈やデザイナーに大人気!
CHAPTER 1 最初に知っておこう!Webサイトの基本
1-1 よいWebデザインとは
1-2 様々な種類のWebサイト
1-3 ユーザビリティとは
1-4 Webサイトの仕組み
1-5 デバイスの種類
1-6 ブラウザーの種類
1-7 制作の流れ
1-8 制作をはじめる前に
CHAPTER 2 Webの基本構造を作る!HTMLの基本
2-1 HTMLとは
2-2 HTMLファイルを作ろう
2-3 HTMLファイルの骨組み
2-4 HTMLの基本の書き方を身につけよう
2-5 見出しをつけよう
2-6 文章を表示しよう
2-7 画像を挿入しよう
2-8 リンクをはろう
2-9 リストを表示しよう
2-10 表を作ろう
2-11 フォームを作ろう
2-12 より使いやすいフォームにしよう
2-13 ブロック要素でグループ分けをしよう
2-14 よく使うHTMLタグ一覧
CHAPTER 3 Webのデザインを作る!CSSの基本
3-1 CSSとは
3-2 CSSを適用させる方法
3-3 CSSファイルを作ろう
3-4 CSSの基本の書き方を身につけよう
3-5 文字や文章を装飾しよう
3-6 Webフォントを使おう
3-7 色をつけよう
3-8 背景を彩ろう
3-9 幅と高さを指定しよう
3-10 余白を調整しよう
3-11 線を引こう
3-12 リストを装飾しよう
3-13 クラスとIDを使った指定方法
3-14 レイアウトを組もう
3-15 デフォルトCSSをリセットしよう
3-16 よく使うCSSプロパティ一覧
CHAPTER 4 フルスクリーンのWebサイトを制作する
4-1 フルスクリーンとは
4-2 フルスクリーンページの制作の流れ
4-3 「head」を記述しよう
4-4 「header」部分を作ろう
4-5 コンテンツ部分を作成しよう
4-6 ファビコンを用意しよう
4-7 フルスクリーンページのカスタマイズ例
CHAPTER 5 2カラムのWebサイトを制作する
5-1 2カラムのレイアウトとは
5-2 2カラムページの制作の流れ
5-3 ページ全体の見出しを作成しよう
5-4 フッター部分を作成しよう
5-5 横並びの設定をしよう
5-6 メインエリアを作ろう
5-7 サイドバーを作ろう
5-8 レスポンシブに対応させよう
5-9 カラムページのカスタマイズ例
CHAPTER 6 タイル型のWebサイトを制作する
6-1 タイル型レイアウトとは
6-2 タイル型レイアウトの制作の流れ
6-3 ページ上部の紹介文を作成しよう
6-4 タイル型レイアウトを設定しよう
6-5 レスポンシブに対応させよう
6-6 タイル型レイアウトのカスタマイズ例
CHAPTER 7 外部メディアを利用する
7-1 お問い合わせページの制作の流れ
7-2 フォームを設置しよう
7-3 地図を表示しよう
7-4 Facebookプラグインを挿入しよう
7-5 Twitterプラグインを挿入しよう
7-6 YouTube動画を挿入しよう
7-7 レスポンシブに対応させよう
7-8 OGPの設定をしよう
7-9 外部メディアのカスタマイズ例