飛躍的に向上させるNumPy徹底入門
NumPyは、多次元配列を扱う数値演算ライブラリです。機械学習だけでなく画像処理、音声処理などコンピュータサイエンスをするならNumPyを学んでおくことで、あなたの日々の研究や開発の基礎力は格段にアップするはずです。
プログラミングの初心者から、Webエンジニア、これから研究する人など、初学者にも分かりやすく優しく説明することを心がけて必要な知識が身につくように解説しています。
腰を据えて学習する時間と余裕のある方は、Step1から順に進めていくことで、苦手意識のあった方でも一通り読み終わる頃には理解できなかったPythonとNumPyのソースコードがスラスラと読めるようになるはずです。
上級者の方は、分からない記事だけ読むだけでも、力になると思われます。あなたのプログラミング能力を向上する手助けになることをお約束します。このサイトを通して、コンピュータサイエンスに入門しましょう。
Step1.
NumPyの基本
まずはNumPyのインストールと開発環境の環境を構築します。そして、これから学ぶNumPyを構成する要素について一緒に理解していきましょう。
- NumPyのインストール方法
- 10分で学ぶNumPy速習チュートリアル
- NumPyの多次元配列データ構造ndarrayの基礎
- NumPyのブロードキャストのメリットと解説
- NumPy配列のスライシング機能の使い方
- NumPyの軸(axis)と次元数(ndim)とは何を意味するのか
- NumPyのndarrayのインスタンス変数shapeの意味
- NumPyにおける要素のデータ型dtypeの種類と指定方法
- NumPyのコピー(copy)とビュー(view)を分かりやすく解説
1.1 NumPyの基本とインストール方法
1.2 NumPyを使う上で知っておきたいこと
Step2.
NumPy配列を操作する関数を知る
NumPyの多次元配列の構造を理解したので、実際に配列を操作・取得する方法を学びましょう。プログラミングをする上で基本操作を自在に利用できるようになることで、実験や研究のアイデアをすぐに実現することができるようになります。
- 配列を形状変換するNumPyのreshapeの使い方
- 配列末尾へ要素を追加するNumPyのappendの使い方
- NumPyのall関数とany関数の使い方
- 条件を満たす要素のインデックスを取得するNumPyのwhereの使い方
- 最大値を抜き出すnumpy.amaxとnadarray.max関数の使い方
- 最小値を抜き出すnumpy.aminとnadarray.min関数の使い方
- 配列の最大要素のインデックスを返すNumPyのargmax関数の使い方
- 配列の軸の順番を入れ替えるNumPyのtranspose関数の使い方
- NumPyのソート関数np.sortとnp.argsortの使い方
- 配列同士を連結する、NumPyのvstackとhstack関数の使い方
- コラム: matplotlibで可視化する方法
- 0を要素とする配列を生成するnumpy.zerosの使い方
- 要素が1の配列を生成するnumpy.ones関数の使い方
- 連番や等差数列を生成するnumpy.arange関数の使い方
- 線形に等間隔な数列を生成するnumpy.linspace関数の使い方
- 単位行列を生成するNumPyのeye関数とidentity関数の使い方
- 未初期化の配列を生成するnumpy.empty関数の使い方
- NumPyのrandomを使った配列操作・乱数生成方法まとめ
- 配列を1次元に変換するNumPyのflatten関数の使い方
- np.loadtxtとnp.savetxtでテキストファイルを読み書きする方法
- np.loadとnp.save関数でファイルの永続化方法
- bufferをndarrayに高速変換するnumpy.frombuffer関数の使い方
- 非ゼロ要素を抽出するnumpy.nonzero関数の使い方
- flattenよりも高速に配列を一次元化するnumpy.ravel関数の使い方
- 配列をタイル状に並べるnumpy.tile関数の使い方
- numpy.newaxisで配列に次元(ndim)を追加する方法
- 要素の差分、足し合わせを計算するNumPyのdiff関数とcumsum関数の使い方
- 多次元配列の結合を行うオブジェクトnp.c_とnp.r_の使い方
2.1 基本的な操作
2.2 基本的な配列の生成方法
2.3 ファイルの読み書き
2.4 その他の関数
Step3.
NumPyの数学関数を使いこなす
NumPyには多種多様の数学関数が予め実装されています。自ら関数を作らずとも、用意されているので、容易にアイデアを具現化することができます。このステップでは、どんな数学関数があるのかを確認しながら、実際に使ってみましょう。
- NumPyの数学関数・定数まとめ
- 配列の要素の平均を求めるNumPyのaverage関数とmean関数の使い方
- 要素の中央値を計算するNumPyのmedian関数の使い方
- 要素の和を求めるNumPyのsum関数の使い方
- 要素の標準偏差を計算するNumPyのstd関数の使い方
- NumPyで分散を求める関数np.var関数の使い方
- NumPyの共分散を求める関数np.cov関数の使い方
- NumPyの相関係数を求めるnp.corrcoef関数の使い方
- 配列の要素から格子列を生成するnumpy.meshgrid関数の使い方
- NumPyでヒストグラムを作るnp.histogram関数の使い方
- ベクトルの内積や行列の積を求めるnumpy.dot関数の使い方
- NumPyで行列式を求めるlinalg.det関数の使い方
- NumPyで行列の固有値、固有ベクトルを求めるlinalg.eig関数の使い方
- NumPyで階数(ランク)を求めるlinalg.matrix_rank関数の使い方
- NumPyで逆行列を求めるlinalg.invの使い方
- 外積を求めるnumpy.outer関数の使い方
- 畳み込み積分や移動平均を求めるnumpy.convolve関数の使い方
3.1 基本的な数学の演算
3.2 行列演算を行う関数
3.3 その他の数学的関数
Step4.
NumPyを使った機械学習
実際にNumPyを使ってゼロから機械学習を学びながら、これまで覚えてきた関数を使ってニューラルネットワークを構築してみましょう。このステップを通して、短いコードで高度な知識を実現できるNumPyの力を体感しながら、これからの実験・実装に活かしてください。