インフィニティNumPy――配列の初期化から、ゲームの戦闘、静止画や動画作成までの221問
- 物理版(A4)+電子版(A4+A5)セット¥ 1,800
- 電子版(A4+A5)のみ¥ 1,800
- 無料試し読み¥ 0
「本当の実装力を身につける」ための221本ノック―― 機械学習で避けて通れない数値計算ライブラリ・NumPyを、自在に活用できるようになろう。「できる」ようになるための体系的な理解を目指します。基礎から丁寧に解説し、ディープラーニングの難しいモデルで遭遇する、NumPyの黒魔術もカバー。初心者から経験者・上級者まで楽しめる一冊となっています。本書の問題を解き終わったとき、機械学習やディープラーニングなどの発展分野にスムーズに入っていけるでしょう。 本書の大きな特徴として、Pythonの本でありがちな「NumPyと機械学習・ディープラーニングの結合を外した」という点があります。NumPyを理解するのに、機械学習の理論まで理解するのは初心者にとって負担が大きいです。本書ではあえてこれらの内容を書いていません。行列やテンソルの理解に役立つ「従来の画像処理」をNumPyベースで深く解説・実装していきます。 しかし、問題の多くは、ディープラーニングの実装で頻出の関数・処理を重点的に取り上げています。経験者なら思わず「あー」となるでしょう。関数丸暗記では自分で実装できるようにはなりません。「覚える関数は最小限、できる内容は無限大」の世界をぜひ体験してみてください。画像編集ソフトの処理をNumPyベースで実装する楽しさを身につけてください。
仕様
🎉Booth限定!電子版がA4とA5両方ついてくる🎉 📙A4版 176P 📙A5版 451P 「物理版+電子版」「電子版」のどちらでも、両方の版の電子書籍がついてきます。閲覧デバイスにあわせてご活用ください! 電子版はオールフルカラー。 「物理版+電子版」の電子版は注文詳細画面の「おまけファイル」からダウンロードできます。電子版は決済完了したらすぐ読めます! 物理版はA4版本文モノクロとなります。中身はA4版の電子書籍に準拠します。紙の本の発送に1週間程度かかります。
みんなの感想
https://togetter.com/li/1641475
この本を読むと良い人
【入門者】 🙋Pythonの書き方はなんとなくわかったけど、NumPyの書き方がわからない 🙋機械学習やディープラーニングをやりたいけどそこまでいかない 🙋行列やテンソルってなんだかわからない 🙋とにかく実装できるようになりたい 【経験者】 👍初心者に教えるのに使いたい 👍NumPy配列のaxisが混乱する 👍ディープラーニングでshapeが意図した通りにならない 👍行列のどっちが行でどっちが列だか混乱する 👍ブロードキャストの使いこなし方がわからない 👍NumPy配列だけで画像処理や動画処理をやりたい 👍NumPyの黒魔術が知りたい 【今までNumPyを触ったことがない方】 💪画像編集ソフトでやるような処理を無料のコードベースでやりたい 💪大量の画像を一括で処理したい 💪機械学習は知らないが画像処理の実装に興味がある 💪高校数学の知識で楽しいことをしたい 💪フォトショップなどの画像編集ソフトを普段使っているが、背景の理論や実装を知りたい 【この本が向いていない人】 🥺機械学習やディープラーニングの理論の最先端を知りたい(『モザイク除去から学ぶ 最先端のディープラーニング』をご利用ください) https://koshian2.booth.pm/items/1835219 🥺線形代数や機械学習の理論ベースが理解がしたい(多数良書があるのでそちらをご利用ください)
必要な事前知識
📏Pythonの基本的な書き方がわかったほうが楽しめます 📏高校数学を知っているレベル以上だとより楽しめます。特に4章以降は、「点と直線の方程式」「三角関数」がよく出てきます。高校数学の難しい問題を解ける必要はありませんが、「sin, cosが何か」が知っている前提で書いています
ここがポイント
✅すべての処理がCPUで完結するので、GPUなど高価なデバイスが不要 ✅ブラウザ上で動く「Google Colaboratory」の無料CPUですべて完結。PCスペックがハードルとなることがありません。タブレットからも実行できます。 ✅その気になれば高価な画像編集ソフトの処理を、コードベースで無料でできます ✅行列やテンソルの説明を、数学を第一に置くのではなく、NumPyのコードベースから導入します ✅ブロードキャストを使いこなす方法をちゃんと解説した、もしかすると「ここだけ」の本です。ブロードキャストをきちんと理解することで、正しい実装ができます。
お知らせ
・2020/12/28 一部内容修正しました。お手数ですが電子版の再ダウンロードをお願いいたします 正誤表 https://github.com/koshian2/numpy_book/blob/master/%E7%B4%99%E3%81%AE%E6%9C%AC%E6%AD%A3%E8%AA%A4%E8%A1%A8.md
Buyee経由の注文に注意
ブラウザの言語環境が「日本語以外」で「物理本を含む」場合、「Buyee」経由の注文となることがあります。 これは海外発送代行サービスであり、日本在住の方は使う必要はありません。日本在住の方は「日本語のページ」から、ゆうパケットなどで発送するようにしてください。 Buyee経由ではBoothの注文履歴に反映されないため、おまけの電子版がダウンロードできません。
目次
【第1章 Pythonの基礎】 ・この章で学ぶこと ・Pythonの基本のキ ・Pythonのリストとforループ ・多重ループ、多次元リスト、イテラブル ・演習問題1 ・リストの要素の追加・削除とパフォーマンス ・リストのインデックス、スライス ・リストとタプル ・演習問題2(計34問) 演習問題(計 34問):はじめましてリスト、リストとforループ、文字列の結合、条件分岐、zip関数、リストのリスト、多重ループ、改行しないprint関数、インデックスに選択、インデックスによる条件分岐、文字列の反転、リストのインデックス入門、負のインデックス、リストのスライス、リストの反転、昇順ソート、降順ソート、偶数だけのスライス、個おきのスライス、個おきにスライスして反転、リストの結合、リストの要素の削除、追加して新しいリストを作成、北海道の市町村~データ読み込み~、北海道の市町村~データ整形~、北海道の市町村~条件判定~、北海道の市町村~複数の条件判定1~、北海道の市町村~複数の条件判定2~、北海道の市町村~複数の条件判定3~、北海道の市町村~dictを使った小計~、北海道の市町村~lambdaを使ったソート~、北海道の市町村~リストの内包表記~、北海道の市町村~辞書のキーの活用~、北海道の市町村~グループ単位のワースト~ 【第2章 NumPyの導入】 ・この章で学ぶこと ・NumPyとは ・NumPy配列の初期化 ・NumPy配列のインデックスによるアクセス、代⼊ ・NumPy配列の計算 ・パフォーマンスのベストプラクティス ・NumPy配列を簡単に呼び出すための関数 ・データ型 ・ブーリアンマスク ・キャスト ・演習問題 演習問題(計 28問):全て0と1、整数のNumPy配列、中間地点に代入、奇数と偶数のインデックス(1)、奇数と偶数のインデックス(2)、FizzBuzz、 FizzBuzz縛りプレイ、世界のナベアツ、平方数、等速直線運動、連番べき乗、三角関数の加法定理、GoToトラベル、小数の丸め方、ランダムな個数の配列、要素が10連続の配列、オーバーフロー、アンダーフロー、頭打ち処理、魔王と勇者のデータサイエンス、魔王と勇者のデータサイエンス~最小討伐人数~ 、魔王と勇者のデータサイエンス~魔王のスピード~ 、魔王と勇者のデータサイエンス~魔王のパワー~ 、魔王と勇者のデータサイエンス~パワーかスピードか~、魔王と勇者のデータサイエンス~損耗率~ 、魔王と勇者のデータサイエンス~勇者派遣コスト~ 、魔王と勇者のデータサイエンス~勇者の人数とコストの関係~ 、魔王と勇者のデータサイエンス~経済制裁~ 、魔王と勇者のデータサイエンス~勇者の意識改革~ 【第3章 ⾏列の導入】 ・この章で学ぶこと ・NumPy配列の結合 ・NumPy配列の分割 ・多次元リストと多次元配列 ・NumPy配列の積み上げ:np.stack ・多次元配列のスライスの解釈 ・NumPy配列のshape ・集約関数 ・多次元配列と集約関数のaxis ・多次元配列の次元 ・多次元配列化できない「リストのリスト」 ・配列の結合でのaxis ・⾏列の導⼊ ・⾏列の定義 ・演習問題 演習問題(計 28問):np.concatenate、np.stack、スライスのshape、ベクトルの結合、ベクトルの行列化(1)、ベクトルの行列化(2)、集約関数のaxis、分散と標準偏差、平均と中央値、ポケモンの分析、種族値合計、種族値の集約、種族値のランキング、種族値合計の偏差値、偏差値ソート、種族値単位の偏差値ソート、偏差値合計のソート、コサイン類似度、画像入門、行列積の可換性、行列積のshape、あんこ商店、アフィン変換入門~事前準備~、アフィン変換入門~回転~、アフィン変換入門~せん断(1)~、アフィン変換入門~せん断(2)~、アフィン変換入門~変換の合成~、アフィン変換入門~逆変換~ 【第4章 テンソルと画像処理】 ・この章で学ぶこと ・⾏列と画像の関係 ・背景⼀⾊の画像 ・直線を引く ・matplotlibでの複数グラフの書き⽅ ・市松模様を作る ・グラデーションを作る ・円の描画 ・楕円の描画 ・極座標 ・カラー画像の作り⽅ ・カラー画像での矩形塗りつぶし ・テキストの描画 ・PillowとNumPy配列の相互変換 ・演習問題 演習問題(計 100問):ベタ塗りグレースケール、四角形の塗りつぶし、画像の保存、円の塗りつぶし、平方数の直線、斜めの線、同心円、アンチエイリアス、スーパー楕円、カージオイド、円周率の近似値、積分の数値計算、オウム貝の螺旋、グラデーション円(1)、グラデーション円(2)、三角形の描画の準備、三角形の描画、三角形の重心の数値計算、任意図形の重心、 カラー画像入門、イタリアの国旗、階テンソルの乱数、ホワイトノイズ、階テンソルのconcatenate、3階テンソルのstack、縦方向の画像結合、横方向の画像結合、日の丸、Z旗、セーシェルの国旗、画像の合成、RGBA画像(1)、RGBA画像(2)、透過画像の合成、クロマキー合成、アルファブレンド、アルファブレンド(2)、HSV色空間(色相)、HSV色空間(彩度)、HSV色空間(明度)、色相環、補色、類似色、ゲーミングフラワー、ゲーミングイルカ、類似色のグラデーション、RGBとHSVのグラデーション(線形補間)、カラー画像のグレースケール化(HSV編)、カラー画像のグレースケール化(配列計算編)、単色カラー化、単色カラー化(ダブルトーン)、セピア化、もっと良いセピアフィルタ、トーンカーブ(レベル補正)、トーンカーブ(ガンマ補正)、トーンカーブ(S字曲線)、チャンネル別トーンカーブ、色褪せていく世界、暗くなっていく世界、明るくなっていく世界、レイヤーマスク(1)、レイヤーマスク(2)、レイヤーマスク(3)、レイヤーの合成モード(乗算)、レイヤーの合成モード(スクリーン)、スクリーンによる光の描画、レイヤーの合成モード(覆い焼きリニア-加算)、レイヤーの合成モード(覆い焼きカラー)、覆い焼き2種類比較、レイヤーの合成モード(比較<明>、カラー比較<明>)、レイヤーの合成モード(焼き込みリニア)、レイヤーの合成モード(焼き込みカラー)、レイヤーの合成モード(比較<暗>、カラー比較<暗>)、焼き込み2種類比較、レイヤーの合成モード(オーバーレイ)、レイヤーの合成モード(ハードライト)、オーバーレイを使ったコントラスト補正、ゲーミングあんこちゃん、レイヤーの合成モード(ソフトライト)、レイヤーの合成モード(ビビッドライト)、レイヤーの合成モード(リニアライト)、ソフトライトを再帰的にかける、禍々しいハート、ライトシリーズ比較、CMYK色空間、加法混色、減法混色、CMYKのグラデーション、RGB→CMYKのくすみ、カラープロファイルを埋め込んだ画像ファイルの作成、カラープロファイルの変換、もっといいCMYK変換、シアン抜き、マゼンタ抜き、スプライン補間と任意の曲線、2次元の補間法、スプライン補間によるトーンカーブ、文字を入れる場所、なんかダサそうなロゴ、ブレンド変えて少しまともにしたロゴ、写真がないページの判定、白黒画像の除外、モザイクをかける 【第5章 ブロードキャストの応⽤】 ・この章で学ぶこと ・reshapeでshapeを⾃由に操る ・軸を追加する関数:np.expand_dims ・ブロードキャスト ・ブロードキャストを⾃在に操る ・軸を増やすための書き⽅ ・⼿動ブロードキャスト:np.broadcast_toとnp.repeat ・reshapeの⿊魔術(1):モノクロ画像の切り出し ・reshapeの⿊魔術(2):カラー画像の切り出し ・reshapeの⿊魔術(3):カラー画像の切り出し(⻑⽅形) ・Colabで動画を表⽰する⽅法 ・演習問題 演習問題(計 31問):ブロードキャスト後のshape、ブロードキャストのためのreshape、掛け算九九の表、真理値表、駅間距離、都市間の直線距離、グラデーション再び、はじめまして動画、グラデーション動画、ルパン風タイトルジェネレーター、動くグラデーション、動くゲーミングあんこちゃん、動画のハードライトブレンディング、動画のビビッドライトブレンディング、移動する円、光るまりも、ダイナミックな行列のスライス、ダイナミックなスライスとブロードキャスト、座標にノイズを乗せたエフェクト(1)、座標にノイズを乗せたエフェクト(2)、三角関数を乗せたエフェクト(1)、三角関数を乗せたエフェクト(2)、スライドしながら覆い焼く、トーンカーブとアニメーション、動くスポットライトのアニメーション、懐かしのスクリーンセーバー(60年代アメリカ)、微分可能なモザイク、スライドするライト、跳ね返るボール、跳ね返る複数個のボール、粉雪 【演習問題・模範解答】