NumPyのidentity関数で単位正方行列を作成する方法

np.identity関数は単位行列を作成する関数です。

単位行列とは、対角線の要素が1で、それ以外の要素は0で構成されている行列のことで、機械学習におけるデータエンジニアリングでよく使う重要な配列です。

同じく単位行列を作成する関数には、np.eye関数もあります。両者の違いは、np.identitiyは正方行列を作りますが、np.eyeは自由な形状を指定できるという点にあります。そのためnp.identityの方が引数が少なくシンプルです。

このページでは、np.identity関数の使い方をサンプルコードを見ながら確認していきます。

なお、np.eye関数については『numpy.eye関数で単位行列を作成する方法』で解説しています。

目次

1. 書式

np.identity関数の書き方は次の通りです。

numpy.identity

書き方:

numpy.identity(n, dtype=None)

パラメーター:

引数   解説
n int 生成する配列の行数と列数を指定します。
dtype(optional) data-type生成する配列のデータ型を指定します。デフォルトはfloat型です。

戻り値: 

ndarray:対角線は1で、それ以外の要素が0で埋められたn×nの2次元配列

一緒に確認したい関数:

  • eye: NxMの単位行列を作成
  • diag: 対角線の要素を取得

2. サンプルコード

それでは、np.identity関数の使い方を実際のコードで確認しましょう。使い方は基本的に引数nを渡すだけです。生成される配列のデータ型はfloat型です。

In [1]:
import numpy as np
np.identity(3)
Out[1]:
array([[1., 0., 0.],
       [0., 1., 0.],
       [0., 0., 1.]])

配列のデータ型を変更したい場合はオプション引数「dtype=」を使います。

以下のコードでは、int型を指定しています。

なお、dtypeの種類や指定する時の書き方等に関しては、『NumPyのdtype属性の一覧と確認・指定・変更方法』をご確認下さい。

In [2]:
''' dtypeの指定  '''
np.identity(5, dtype=int)
Out[2]:
array([[1, 0, 0, 0, 0],
       [0, 1, 0, 0, 0],
       [0, 0, 1, 0, 0],
       [0, 0, 0, 1, 0],
       [0, 0, 0, 0, 1]])

指定の通り、要素がint型(整数)になっています

3. まとめ

以上がnp.identity関数の使い方です。

  • eye: 対角線の要素が1で他は0埋めの配列を生成
  • diag: 配列から対角線の要素を取得

Python初心者におすすめのプログラミングスクール

「未経験からでもPythonを学べるプログラミングスクールを探しているけど、色々ありすぎてわからない」なら、次の3つのプログラミングスクールから選んでおけば間違いはありません。

Aidemy Premium:全くの初心者ができるだけ効率よく短期間で実務的に活躍できるAI人材になることを目的とした講座。キャリアカウンセリングや転職エージェントの紹介などの転職支援も充実しており、受講者の転職成功率が高い。

AIジョブカレPythonの基本をおさえた人が、実際に機械学習やディープラーニングを活用できるようになるための講座。転職補償型があるなどキャリア支援の内容が非常に手厚く、講師の質も最高クラス。コスパ最高。Python初心者用の対策講座もある。

データミックスプログラミング経験者のビジネスマンが、更なるキャリアアップのためにデータの処理方法を学んでデータサイエンティストになるための講座。転職だけでなく起業やフリーランスとして独立する人も多い。Python初心者用の対策講座もある。

特に、あなたが以下のような目標を持っているなら、この中から選んでおけば間違いはないでしょう。

・未経験からPythonエンジニアとして就職・転職したい
・AIエンジニアやデータサイエンティストとしてキャリアアップしたい
・起業やフリーランスを視野に入れたい

理由は「Python初心者のためのおすすめプログラミングスクール3選」で解説しています。



よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次
閉じる