NumPyで単位行列を作成する2つの方法

NumPyでは、単位行列を作成するための関数が2つ用意されています。単位行列とは、対角線の要素が1、それ以外の要素が0で埋められた2次元配列であり、機械学習の「特徴量エンジニアリング」というステップでよく使われる重要な配列です。

この単位行列を作成するための関数は、以下の2つがあります。

  • np.identity: NxN の正方形の単位行列を作成
  • np.eye: NxM の任意の形状の単位行列を作成

このページでは、これらの関数を使って、単位行列を作成する方法を簡単に解説します。

目次

1. 単位正方行列を作成

NumPyで単位正方行列を作成するには、np.identity関数を使います。使い方は簡単です。この関数の引数に整数Nを渡すとNxNの単位正方行列を戻します。

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

デフォルトのデータ型はfloat型ですが、オプション引数 dtype= で変更することが可能です。さらに詳しい使い方は以下のページをご覧ください。

2. 任意の形状の単位行列を作成

任意の形状NxMの単位行列を作成するには、np.eye関数を使います。この関数の引数には、基本的に行数Nと列数Mの2つの引数を整数で渡します。

In [1]:
import numpy as np
np.eye(5, 4)
Out[1]:
array([[1., 0., 0., 0.],
       [0., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.],
       [0., 0., 0., 0.]])

オプション引数 k= または、第三位置引数として整数を渡すと、対角線が始まる位置をずらすことも可能です。

In [2]:
np.eye(5, 4, -1)
Out[2]:
array([[0., 0., 0., 0.],
       [1., 0., 0., 0.],
       [0., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.]])

デフォルトのデータ型はfloat型ですが、必要な時はデータ型やメモリレイアウトも変更することが可能です。詳しくは、以下のページでご確認ください。

3. まとめ

以上がNumPyで単位行列を作成する方法です。np.eye関数は単位正方行列を作成します。np.identity関数は任意の形状の単位行列を作成します。さらに、対角線の軸の位置も変更することが可能です。

必要に応じて使い分けると良いでしょう。

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

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

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

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

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

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

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

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



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

この記事を書いた人

コメント

コメントする

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

目次
閉じる