現場で使える!NumPyデータ処理入門 機械学習・データサイエンスで役立つ高速処理手法(吉田 拓真 尾原 颯)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. 現場で使える!NumPyデータ処理入門 機械学習・データサイエンスで役立つ高速処理手法

現場で使える!NumPyデータ処理入門 機械学習・データサイエンスで役立つ高速処理手法



形式:
書籍
発売日:
ISBN:
9784798155913
定価:
4,180(本体3,800円+税10%)
仕様:
A5・536ページ
カテゴリ:
人工知能・機械学習
キーワード:
#プログラミング,#開発手法,#データ・データベース,#ビジネスIT
シリーズ:
AI & TECHNOLOGY
紙の書籍
本書籍には新版があります
現場で使える!NumPyデータ処理入門 第2版 機械学習・データサイエンスで役立つ高速処理手法

機械学習・データサイエンスで役立つ高速処理手法

【本書の概要】
ビッグデータを扱う機械学習の現場では、Pythonの高機能で利用しやすい数学・科学系ライブラリが急速に広まってきています。
本書は、機械学習・データサイエンスの現場でよく利用されているNumPyの基本から始まり、
現場で使える実践的な高速データ処理手法について解説します。
特に、現場でよく扱う配列の処理に力点を置いています。
最終章では機械学習における実践的なデータ処理手法について解説します。

【NumPy(ナンパイ)とは】
NumPyは、機械学習・データサイエンスの現場で扱うことの多い多次元配列(行列やベクトル)を
処理する高水準の数学関数が充実しているライブラリです。
Python単体では遅い処理であっても、C言語なみに高速化できるケースもあり、
機械学習・データサイエンスの分野におけるデータ処理に欠かせないライブラリとなっています。

【対象読者】
機械学習エンジニア、データサイエンティスト

【著者紹介】
吉田拓真(よしだ・たくま)
データサイエンス関連のサービスを提供する株式会社Spot 代表取締役社長。
Webメディア『DeepAge』編集長。

尾原 颯(おはら・そう)
東京大学工学部機械工学科所属。
大学ではハードウェア寄りの勉強が多め。
趣味はアカペラとテニス。基本的に運動が好き。最近、ランニングを始める。

Chapter 1 NumPyの基本
 1.1 NumPyの基本とインストール方法
 1.2 多次元データ構造ndarrayの基礎
 1.3 ブロードキャスト
 1.4 スライシング
 1.5 軸(axis)と次元数(ndim)について
 1.6 ndarrayの属性(attribute)shape
 1.7 要素のデータ型(dtype)の種類と指定方法
 1.8 コピー(copy)とビュー(view)の違い

Chapter 2 NumPy配列を操作する関数を知る
 2.1 配列を形状変換するreshape
 2.2 配列末尾へ要素を追加するappend
 2.3 配列の真偽判定に役立つallとany
 2.4 条件を満たす要素のインデックスを取得するwhere
 2.5 最大値、最小値を抜き出すamax、maxとamin、min
 2.6 配列の最大要素のインデックスを返すargmax
 2.7 配列の軸の順序を入れ替えるtranspose
 2.8 ソートをするsortとargsort
 2.9 配列同士を連結する、NumPyのvstackとhstackの使い方
 2.10 データを可視化するmatplotlibの使い方
 2.11 要素がゼロの配列を生成する関数のまとめ
 2.12 要素が1の配列を生成するones
 2.13 連番や等差数列を生成するarange
 2.14 線形に等間隔な数列を生成するlinspace
 2.15 単位行列を生成するeyeとidentity
 2.16 未初期化の配列を生成するempty
 2.17 randomモジュールを使った配列操作・乱数生成方法
 2.18 配列を1次元に変換するflatten
 2.19 loadtxtとsavetxtを使ってテキストファイルを読み書きする
 2.20 配列データをそのまま読み書きするloadとsave
 2.21 bufferをndarrayに高速変換するfrombuffer
 2.22 非ゼロ要素を抽出するnonzero
 2.23 flattenよりも高速に配列を1次元化するravel
 2.24 配列をタイル状に並べるtile
 2.25 新しく配列に次元を追加するnp.newaxisオブジェクト
 2.26 要素の差分と足し合わせを計算するdiffとcumsum
 2.27 多次元配列の結合を行うnp.c_とnp.r_オブジェクト

Chapter 3 NumPyの数学関数を使う
 3.1 NumPyの数学関数・定数のまとめ
 3.2 要素の平均を求めるaverageとmean
 3.3 要素の中央値を計算するmedian
 3.4 要素の和を求めるsum
 3.5 標準偏差を計算するstd
 3.6 分散を求めるvar
 3.7 共分散を求めるcov
 3.8 相関係数を求めるcorrcoef
 3.9 配列の要素から格子列を生成するmeshgrid
 3.10 内積を計算するdot
 3.11 行列式を求めるlinalg.det
 3.12 行列の固有値や固有ベクトルを求めるlinalg.eig
 3.13 行列の階数(ランク)を求めるrank
 3.14 逆行列を求めるinv
 3.15 直積を求めるouter
 3.16 外積を求めるcross
 3.17 畳み込み積分や移動平均を求めるconvolve

Chapter 4 NumPyで機械学習を実装する
 4.1 配列の正規化(normalize)、標準化をする方法
 4.2 線形回帰をNumPyで実装する
 4.3 NumPyでニューラルネットワークを実装する:基本編
 4.4 NumPyでニューラルネットワークを実装する:理論編
 4.5 NumPyでニューラルネットワークを実装する:実装編
 4.6 NumPyでニューラルネットワークを実装する:多層化と誤差逆伝播法編
 4.7 NumPyでニューラルネットワークを実装する:文字認識編
 4.8 NumPyで強化学習を実装する

付属データはこちら

会員特典はこちら

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

追加情報はありません。
この商品の「よくある質問」はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2020年09月08日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 0-ix
上から2行目
2刷
本書の対象読者と必要な事前知識について
本書の対象読者と必要な事前知識

※リフローEPUBの場合、「CONTENTS(目次)」の冒頭、2行目が該当箇所になります。
2018.11.19
1刷 019
上から5行目と20行目(空行含む)
2刷
b = [a] # リストに変換 ・・・(略)・・・ Not using NumPy 0.094761 sec
b = list(a) # リストに変換 ・・・(略)・・・ Not using NumPy 5.502100 sec

※リフローEPUBの場合、「1.1.4 NumPyチュートリアル」の5つ目の小見出し「●NumPyの高速演算」の1つ目のコード内、上から5行目(空行含む)、および最下行が該当箇所になります。
2019.04.17
1刷 025
参照先の項番号修正
2刷
1.2.5項「Memory Layout」
1.2.3項「Memory Layout」

※リフローEPUBの場合、「1.2.2 属性(attributes)」の最後から2つ目のコードの上にある段落(「次は.stridesです。」で始まる段落)が該当箇所になります。
2018.11.06
1刷 027,028
図1.1と図1.2の内容が逆、本文の修正
2刷
P.27 ----------------- ローメジャーでは低い次元から(axisの番号が小さい順)格納していき、カラムメジャーでは高い次元(axisの番号が大きい順)から格納していきます。 (・・略・・)  2次元でいくとローメジャー(order='C')では列方向から順に要素が格納されていきます。
P.28 -----------------  一方でカラムメジャー(order='F')では行方向から順に要素が格納されていきます( 図1.2 )。
 列方向は2次元においてはaxis=1、行方向はaxis=0となり、軸の番号は変わりはするものの同じ大小関係が成り立ちます。
P.27 ----------------- ローメジャーでは高い次元から(axisの番号大きい順)格納していき、カラムメジャーでは低い次元(axisの番号小さい順)から格納していきます。 (・・略・・)  2次元でいくとローメジャー(order='C')では方向から順に要素が格納されていきます。
P.28 -----------------  一方でカラムメジャー(order='F')では方向から順に要素が格納されていきます( 図1.2 )。
 列方向は2次元においてはaxis=0、行方向はaxis=1となり、軸の番号は変わりはするものの同じ大小関係が成り立ちます。

※リフローEPUBの場合、「1.2.3 Memory Layout」の1つ目のコードの下にある2つ目の段落、および数式の下の段落、さらに、図1.1と図1.2が該当箇所になります。
2018.11.29
1刷 071,275
ATTENTION
2刷
, dype=int64)
, dtype=int64)

※リフローEPUBの場合、CHAPTER 2、CHAPTER 3の章トビラにある「ATTENTION」の2行目が該当箇所になります。
2018.11.19
1刷 124
表2.19上の本文と表2.19のキャプション
・表2.19上の本文 numpy.ndarray.transposeには表2.19 の引数が用意されています。 ・表2.19のキャプション 表2.19 numpy.transposeの引数
・表2.19上の本文 np.sort には表2.19 の引数が用意されています。 ・表2.19のキャプション 表2.19 np.sortの引数
2020.09.04
1刷 161
表2.27(引数名:dtype、概要の内容)
(省略可能)初期値float。 生成する配列の要素のデータ型を指定する。デフォ ルトはfloat64となっている
(省略可能)初期値None。 生成する配列の要素のデータ型を指定する。デフォ ルトはaのデータ型を継承する
2020.09.08
1刷 168
表2.30 (引数名:stop、型の内容)
ntまたはfloat
intまたはfloat
2020.09.08
1刷 209
上から5行目
2刷
保存できる配列の次元は1次元まで
保存できる配列の次元は2次元まで

※リフローEPUBの場合、「2.19.3 np.loadtxtとnp.savetxtの特徴」の箇条書き、2つ目の項目が該当箇所になります。
2019.05.17
1刷 210
上から6~7行目
2刷
0を最初の行として、どの行を読み取るのかを指定する。デフォルトではすべての行を読み取る
0を最初の列として、どの列を読み取るのかを指定する。デフォルトではすべての列を読み取る

※リフローEPUBの場合、表2.36における「usecols」の「概要」欄が該当箇所になります。
2019.05.17
1刷 217
上から4行目、sample8→sample7
2刷
In [24]: np.savetxt('sample8.txt', a, fmt='%.3e',
In [24]: np.savetxt('sample7.txt', a, fmt='%.3e',

※リフローEPUBの場合、「2.19.5 np.savetxt」の8つ目の小見出し「●コメントアウトする文字列の変更」の青いコード枠内、1行目が該当箇所になります。
2019.05.17
1刷 241
脚注番号
2刷
*2
*3

※リフローEPUBの場合、「2.23.3 引数orderについて」の1つ目の小見出し「●2次元の配列を1次元化する」の本文1行目が該当箇所になります。
2018.11.19
1刷 254
下から6行目
2刷
n=1の時
n=2の時

※リフローEPUBの場合、「2.26.1 np.diff」の3つ目の小見出し「●引数nについて」における差分法の公式の下にある2つ目の段落(「配列xの差分を配列yに記録するとします。」で始まる段落)の2行目が該当箇所になります。
2019.05.17
1刷 255
6行目 MEMO内
2刷
例えば…はx2+2x+1と展開できます。ここでの係数は1、2、1となります。…できます
例えば…はx2-2x+1と展開できます。ここでの係数は1、-2、1となります。…できます。

※リフローEPUBの場合、「2.26.1 np.diff」の3つ目の小見出し「●引数nについて」における1つ目のMEMOが該当箇所になります。
2019.05.17
1刷 472
図4.24 左下のb2をb1に修正
2刷
b2
(画像クリックで拡大)
b1
2020.05.29
1刷 473
下から3行目
2刷
76万回行列演算
79万回行列演算

※リフローEPUBの場合、「4.6.3 誤差逆伝播法」の小見出し「●計算時間が短縮される理由」の2つ目の段落が該当箇所になります。
2020.05.29
1刷 479
MEMOの4行目
2刷
左上から0、1、2、3、4
左上から1、2、3、4

※リフローEPUBの場合、「.7.1 NumPyで実装する(MNIST)」のMEMO内、1つ目の段落が該当箇所になります。
2020.05.29
1刷 481
リスト4.6の上から14行目(空行含む)
2刷
# (N, 1000)
# (N, 100)

※リフローEPUBの場合、リスト4.6の13行目(空行含む)が該当箇所になります。
2020.05.29
1刷 484
コメントの修正
2刷
# 5回ごとにどれぐらい学習できているかを確かめる
# 100回ごとにどれぐらい学習できているかを確かめる

※リフローEPUBの場合、「4.7.3 学習を進める」の最初のコード枠内、8つ目のコメント行が該当箇所になります。
2020.05.29
1刷 494
下から12行目
2刷
after %f time steps
after %d time steps

※リフローEPUBの場合、リスト4.9における「#行動の選択」以下5行目(空行含む)のコードが該当箇所になります。
2020.05.29
1刷 502
コメント部分
2刷
epsilon = 0.5 * (0.99** episode) # もし0.2より一様乱数のほうが大きければ… if epsilon <= np.random.uniform(0, 1): (…略…) # 逆に言うと20%の確率でランダムな行動をとる next_action = np.random.choice([0, 1])
epsilon = 0.5 * (0.99** episode) if epsilon <= np.random.uniform(0, 1): (…略…) # そうでなければ20%の確率でランダムな行動をとる next_action = np.random.choice([0, 1])

※リフローEPUBの場合、リスト4.13の中ほど、「defget_action」で始まるブロックが該当箇所になります。
2020.05.29

感想・レビュー

tamioar さん

2019-11-14

これで入門編か。