【Python NumPy 独学】ベクトル・行列の生成・初期化方法(2):すべて要素1の行列 ones、ones_likeについて、サンプルコードともに、サクッとわかりやすく、まとめました【Python 入門】

numpy

NumPy は、Python で線形代数演算の高速化を可能にするライブラリで、統計解析や人工知能など、

すぐにでも活用できます。

NumPyを身につけるには、サンプルコードを写経するのもおすすめです。

いろいろな初期値を使い、サンプルコードを動かすことで、学びたいアルゴリズムの挙動をより理解することができます。

なので、NumPyの習得には、初期値の生成方法を知っておくのが役立ちます。

よく使われるものとしては、以下のものがあります。

  • 要素がすべてゼロの行列
  • 要素がすべてイチの行列
  • 対角要素だけ1で他が0の単位行列

これらの行列をサクッと生成できると、NumPyの勉強がはかどります。

また、

  • 行列をより高速に生成する方法

があると、本番の高速計算に役立ちます。

 

前の記事でゼロ行列の生成方法について、サクッとわかりやすくまとめました↓

【Python NumPy】ベクトル・行列の生成・初期化方法(1):ゼロ行列 zeros、zeros_likeについて、サンプルコードとともに、サクッとわかりやすく、まとめました【Python 入門】

 

本記事では、

ベクトルや行列の生成・初期化のやり方の1つ、

  • 要素すべて1の配列を作る方法

について、わかりやすく、サクッとまとめたいと思います。

 

 

【Python NumPy 独学】ベクトル・行列の生成・初期化方法(2):すべて要素1の行列 ones、ones_likeについて、サンプルコードともに、サクッとわかりやすく、まとめました【Python 入門】

 

(1), 「イチ行列」の行列生成方法:ones

「イチ行列」とは、すべての要素が1の行列です。

(厳密にはイチ行列という言い方はないかと思います。ここでは便利のため使いました。)

イチ行列は、ones( ) メソッドで生成できます。

かっこの中に、1の数を入れて実行します。

5個の1を持つベクトルを生成するには、

以下のようにします。

1次元配列(ベクトル)の生成

デフォルトでは、1は浮動小数点数型で出力されています。

もし、整数型の1を使いたければ、以下のように「dtype」 を使います。

dtype = int」とすることで、整数型のゼロを出力させることができます。

(ちなみに dtype は、data type データ型 の意味になります)

 

 

2次元以上の配列(行列)の生成

2次元や3次元のイチ行列も、以下のように、

生成することができます。

2次元なら、ones ( ) メソッドの中に、

2つの次元の要素数をタプルで書けばオッケーです。

3次元なら、3つの次元の要素数をタプルで書いて生成します。

ちなみに、多次元のアレイが何次元が知りたい時には、

変数名を打ち込んでみて、表示された内容の

アレイのすぐ横の「【 」を数えればオッケーです。

上の3次元の例では、「array( 【【【 」と、

3つの「【」が並んでいます。なので3次元です。

4次元、5次元・・・などの場合も同様に調べることができます。

 

 

(2), 「イチ行列」の行列生成方法:ones_like

上の例では、イチが何個かを指定する必要がありました。

そうではなく、

  • 要素数を指定せずにイチ行列を生成する

方法「ones_like」メソッドがあります。

既存のベクトル・行列と形のゼロ行列を作りたい時に使えます。

In [16] では、1〜5の要素を持つ配列 array4 を定義しています。

In [10] の

np.ones_like (array 4)

のように、ones_likeメソッドに array4 を渡すことで、

  • array4 と同じ形の配列を生成する

ことができます。

同様に、2次元でも

np.ones_like ( 2次元配列 )

のように、2次元の行列を渡すことで、2次元のゼロ行列を生成することができます。

3次元以上の多次元で同様に作成することができます。

このように、ones_like( ) メソッドを使うことで、

  • 要素数を指定せずにゼロ行列を生成する

ことができます。

また、ones_like () メソッドでも、

ones( ) メソッドと同じように、

データ型を指定したい時には、dtype を使うこともできます。

 

 

np.ones( ), np.ones_like の活用事例とは?

随時追加していきます。よかったらフォローなどしておくと見逃さないかと思います。

 

 

 

というわけで、本記事では、

  • 要素すべてイチの配列を作る方法

をサクッとまとめました。

 

 

こちらの記事もございます↓

第3弾では、単位行列の生成方法について解説しました↓

【Python NumPy】ベクトル・行列の生成・初期化方法(3):単位行列の生成( identity、eye)について、サンプルコードとともに、サクッとわかりやすくまとめました【Python 入門】

 

第4弾では、より高速に行列を生成する方法を解説しています↓

【Python NumPy】ベクトル・行列の生成・初期化方法(4):高速な配列の生成方法(empty)について、サンプルコードとともに、サクッとわかりやすくまとめました【Python 入門】

 

 

 

こちらもございます↓

 

 

「Numpy」については、こちらの書籍でも解説しています(無料)↓