NumPy 行列ライブラリ(Matrix)
NumPy には行列ライブラリが含まれていますnumpy.matlibこのモジュールの関数は ndarray オブジェクトではなく行列を返します。
numpy.matlib行列(matrix)オブジェクトの作成と操作に特化しています。NumPy のコアは多次元配列(ndarray)をサポートしていますが、numpy.matlib は行列型を返す便利な関数を提供し、ユーザーが従来の線形代数演算を行いやすくします。
一つの行列は、~から成る
行(row)
列(column)の要素が並べられた矩形配列。
行列の要素は、数値、記号、または数式にすることができます。以下は、6つの数値要素からなる2行3列の行列です:
転置行列
NumPyでは、numpy.transpose 関数を使用して配列の次元を入れ替えるだけでなく、次を使用することもできます。T属性。
例えば、m 行 n 列の行列がある場合、t() 関数を使用すると n 行 m 列の行列に変換できます。

例
出力結果は次のとおりです:
原数组: [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] 转置数组: [[ 0 4 8] [ 1 5 9] [ 2 6 10] [ 3 7 11]]
matlib.empty()
matlib.empty() 関数は新しい行列を返します。構文形式は次のとおりです:
numpy.matlib.empty(shape, dtype, order)
パラメータの説明:
- shape: 新しい行列の形状を定義する整数または整数タプル
- Dtype: オプション、データ型
- order: C(行優先)または F(列優先)
例
出力結果は次のとおりです:
[[-1.49166815e-154 -1.49166815e-154] [ 2.17371491e-313 2.52720790e-212]]
numpy.matlib.zeros()
numpy.matlib.zeros() 関数は、0 で埋められた行列を作成します。
例
出力結果は次のとおりです:
[[0. 0.] [0. 0.]]
numpy.matlib.ones()
numpy.matlib.ones() 関数は、1 で埋められた行列を作成します。
例
出力結果は次のとおりです:
[[1. 1.] [1. 1.]]
numpy.matlib.eye()
numpy.matlib.eye() 関数は、対角要素が 1 で、その他の位置がゼロの行列を返します。
numpy.matlib.eye(n, M,k, dtype)
パラメータの説明:
- n: 返される行列の行数
- M: 返される行列の列数、デフォルトは n
- k: 対角線のインデックス
- dtype: データ型
例
出力結果は次のとおりです:
[[1. 0. 0. 0.] [0. 1. 0. 0.] [0. 0. 1. 0.]]
numpy.matlib.identity()
numpy.matlib.identity() 関数は、指定されたサイズの単位行列を返します。
単位行列は正方行列であり、左上から右下への対角線(主対角線と呼ばれます)上の要素はすべて 1 で、それ以外はすべて 0 です。

例
出力結果は次のとおりです:
[[ 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.]]
numpy.matlib.rand()
numpy.matlib.rand() 関数は、指定されたサイズの行列を作成し、データはランダムに埋められます。
例
出力結果は次のとおりです:
[[0.23966718 0.16147628 0.14162 ] [0.28379085 0.59934741 0.62985825] [0.99527238 0.11137883 0.41105367]]
行列は常に2次元ですが、ndarray は n 次元配列です。2つのオブジェクトは相互に交換可能です。
例
出力結果は次のとおりです:
[[1 2] [3 4]]
例
出力結果は次のとおりです:
[[1 2] [3 4]]
例
出力結果は次のとおりです:
[[1 2] [3 4]]
以下の関数も NumPy の名前空間に存在しますが、これらは行列オブジェクトを返します。
| 関数名 | パラメータの説明 | 機能の説明 |
|---|---|---|
| matrix(data[, dtype, copy]) | data:配列に似たオブジェクトまたは文字列、dtype:データ型、copy:コピーするかどうか | 配列または文字列から行列オブジェクトを作成します |
| asmatrix(data[, dtype]) | data:入力データ、dtype:データ型(オプション) | 入力を行列オブジェクトに変換します |
| bmat(obj[, ldict, gdict]) | obj:文字列またはネストされたシーケンス、ldict、gdict:名前空間辞書(オプション) | 文字列、ネストされたシーケンス、または配列から行列を構築します |
| empty(shape[, dtype, order]) | shape:形状、dtype:データ型、order:格納順序 | 未初期化の要素を持つ行列を作成します |
| zeros(shape[, dtype, order]) | shape:形状、dtype:データ型、order:格納順序 | すべてゼロの行列を作成します |
| ones(shape[, dtype, order]) | shape:形状、dtype:データ型、order:格納順序 | すべて1の行列を作成します |
| eye(n[, M, k, dtype, order]) | n:行数、M:列数、k:対角線のオフセット、dtype:データ型、order:格納順序 | 対角線が1で、残りが0の行列を作成します |
| identity(n[, dtype]) | n:サイズ、dtype:データ型(オプション) | 単位正方行列を作成します |
| repmat(a, m, n) | a:配列または行列、m、n:繰り返し回数 | 配列または行列を m 行 n 列に繰り返します |
| rand(args) | args: 行列の形状を指定します | 指定された形状の一様分布のランダム行列を生成します |
| randn(args) | args:行列の形状を指定します | 指定された形状の標準正規分布のランダム行列を生成します |
注意事項
- とはいえ
numpy.matlib便利ですが、NumPy 公式は使用を推奨していますndarrayと@演算子を使用して行列演算を完了する、なぜならmatrix型にはいくつかの制限があり、将来のバージョンでは非推奨になる可能性があります。 - 新しいコードでは、優先的に使用することをお勧めします
ndarray、より良い互換性と柔軟性を確保するためです。