NumPy は、Python で線形代数演算の高速化を可能にするライブラリです。
NumPyは、行列の扱いを便利に行えるので、
応用面として、統計解析や人工知能など、
すぐにでも活用したい方も多いかと思います。
NumPyを身につけるのにオススメの勉強法の1つに、サンプルコードを写経して学ぶ方法があります。
サンプルコードを使い、
行列の操作を順を追って確認していくのはとても勉強になります。
この際に、まずは行列のデータを用意する必要があります。
用意した行列について、様々な操作を実行して、動作を確認していくわけです。
こういう時には、動作確認をしやすい行列が適しています。
そういった例には、以下のような行列があります。
- 要素がすべてゼロの行列
- 要素がすべてイチの行列
- 対角要素だけ1で他が0の単位行列
これらの行列をサクッと生成できると、NumPyの勉強がはかどります。
また、
- 行列をより高速に生成する方法
があると高速計算に便利ですよね。
そこで本記事では、
ベクトルや行列の生成・初期化のやり方の1つ、
- 要素すべてゼロの配列を作る方法
をわかりやすく、サクッとまとめたいと思います。
【Python NumPy 独学】ベクトル・行列の生成・初期化方法(1):ゼロ行列 zeros、zeros_likeについて、サンプルコードとともに、サクッとわかりやすくまとめました【Python 入門】
(1), 「ゼロ行列」の生成方法:zeros
「ゼロ行列」とは、すべての要素が0の行列です。
ゼロ行列は、zeros( ) メソッドで生成できます。
かっこの中に、ゼロの数を入れて実行します。
5個の0を持つベクトルを生成するには、
以下のようにします。
1次元配列(ベクトル)の生成
デフォルトでは、ゼロは浮動小数点数型で出力されています。
もし、整数型のゼロを使いたければ、以下のように「dtype」 を使います。
「dtype = int」とすることで、整数型のゼロを出力させることができます。
(ちなみに dtype は、data type データ型 の意味になります)
2次元以上の配列(行列)の生成
2次元や3次元のゼロ行列も、以下のように、
生成することができます。
2次元なら、zeros( ) メソッドの中に、
2つの次元の要素数をタプルで書けばオッケーです。
3次元なら、3つの次元の要素数をタプルで書いて生成します。
ちなみに、多次元のアレイが何次元が知りたい時には、
変数名を打ち込んでみて、表示された内容の
アレイのすぐ横の「【 」を数えればオッケーです。
上の3次元の例では、「array( 【【【 」と、
3つの「【」が並んでいます。なので3次元です。
4次元、5次元・・・などの場合も同様に調べることができます。
(2), 「ゼロ行列」の生成方法:zeros_like
上の例では、ゼロが何個かを指定する必要がありました。
そうではなく、
- 要素数を指定せずにゼロ行列を生成する
方法「zeros_like」メソッドがあります。
既存のベクトル・行列と形のゼロ行列を作りたい時に使えます。
In [2] では、1〜5の要素を持つ配列 array1 を定義しています。
In [4] の
np. zeros_like (array 1)
のように、zeros_likeメソッドに array1 を渡すことで、
- array1 と同じ形の配列を生成する
ことができます。
同様に、2次元でも
np.zeros_like ( 2次元配列 )
のように、2次元の行列を渡すことで、2次元のゼロ行列を生成することができます。
3次元以上の多次元で同様に作成することができます。
このように、zeros_like( ) メソッドを使うことで、
- 要素数を指定せずにゼロ行列を生成する
ことができます。
また、zeros_like () メソッドでも、
zeros( ) メソッドと同じように、
データ型を指定したい時には、dtype を使うこともできます。
np.zeros( ), np.zeros_like( ) の活用事例とは?
随時追加していきます。よかったらフォローなどしておくと見逃さないかと思います。
というわけで、本記事では、
- 要素すべてゼロの配列を作る方法
をサクッとまとめました。
こちらの記事もございます↓
続く第2弾では、イチ行列の生成方法について解説しています↓
さらに第3弾では、単位行列の生成方法について解説しました↓
『【Python NumPy】ベクトル・行列の生成・初期化方法(3):単位行列の生成( identity、eye)について、サンプルコードとともに、サクッとわかりやすくまとめました【Python 入門】』
第4弾では、より高速に行列を生成する方法を解説しています↓
『【Python NumPy】ベクトル・行列の生成・初期化方法(4):高速な配列の生成方法(empty)について、サンプルコードとともに、サクッとわかりやすくまとめました【Python 入門】』
こちらもございます↓
「Numpy」については、こちらの書籍でも解説しています(無料)↓