np.dot(《行列1》,《行列2》)既に触れたように、matrixの場合、行列の積は乗算(*)で求めることができます。では、ndarrayで行列の積を求める場合はどうするのか?というと、dotというメソッドを使います。このdotはmatrixでももちろん使えます。例えば、こんな具合です。
numpy.dot([ [1, 2], [3, 4] ], [ [1, 2], [3, 4] ])↓
[[ 7, 10],
[15, 22]]
np.outer(《行列1》,《行列2》)outerは、ベクトルの外積で登場しましたね。これは行列では、2つの行列ですべての要素をかけ合わせるテンソル積を求めるのに使われます。引数に2つの行列オブジェクトを指定すると、テンソル積の行列オブジェクトを返します。
m = numpy.array([[1, 2], [3, 4]])↓
n = numpy.ones((2,2))
t = numpy.outer(m, n)
print(m)
print(n)
print(t)
[[1 2] # m行列
[3 4]]
[[ 1. 1.] # n行列
[ 1. 1.]]
[[ 1. 1. 1. 1.] # テンソル積
[ 2. 2. 2. 2.]
[ 3. 3. 3. 3.]
[ 4. 4. 4. 4.]]
変数 = numpy.hstack(《行列1》,《行列2》)2つの行列を結合するための機能は、hstack, vstackというメソッドとして用意されています。hstackは水平に結合し、vstackは垂直に結合をします。例えば、こんな具合です。
変数 = numpy.vstack(《行列1》,《行列2》)
s = numpy.identity(2)↓
m = numpy.matrix([[1, 2],[3, 4]])
print(numpy.vstack([m,s]))
print(numpy.hstack([m,s]))
[[ 1. 2.]
[ 3. 4.]
[ 1. 0.]
[ 0. 1.]]
[[ 1. 2. 1. 0.]
[ 3. 4. 0. 1.]]
変数 = numpy.linalg.inv(《行列》)逆行列は、numpy.linalgにあるinvメソッドを使います。これは引数の行列の逆行列を返します。例えば、こんな具合です。
numpy.linalg.inv([[1, 2],[3, 4]])↓
[[-2. 1. ]
[ 1.5 -0.5]]
m = np.matrix([[1, 2], [3, 4]])↓
np.linalg.det(m)
-2.0
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
<< 前へ | 次へ >> |