dot()
numpyの関数を使用して乗算する 2 つの行列とベクトルがあります。
print D.shape, A.shape, y.shape, type(D), type(A), type(y)
# (236, 236) (236, 236) (236,)
# <class 'scipy.sparse.csr.csr_matrix'>
# <class 'scipy.sparse.csr.csr_matrix'>
# <type 'numpy.ndarray'>
y_next = np.dot(D, np.dot(A, y))
print y_next.shape
# (236,)
の形状が236x1 マトリックスでy_next
ある(236,)
ことを意味する場合、正しいですか? これで、print y_next
以下の出力が得られます。行の最後のカップルをコピーしましたが、最初のインデックス (行) がuniqueではないことがわかります。これはどこから来たのですか?つまり、ベクトルを掛けた行列はベクトルになるはずであり、ベクトルは定義により同じインデックスを2回持つことはできません。ある場合、出力が示唆するように、それは行列になります。
私の間違いはどこですか?
出力:
::
(230, 212) 0.04
(230, 205) 0.04
(230, 187) 0.04
(230, 11) 0.04
(231, 230) 0.04
(231, 212) 0.04
(231, 205) 0.04
(231, 187) 0.04
(231, 11) 0.04
(232, 235) 0.0625
(232, 234) 0.0625
(232, 233) 0.0625
(232, 160) 0.0625
(233, 235) 0.0625
(233, 234) 0.0625
(233, 232) 0.0625
(233, 160) 0.0625
(234, 235) 0.0625
(234, 233) 0.0625
(234, 232) 0.0625
(234, 160) 0.0625
(235, 234) 0.0625
(235, 233) 0.0625
(235, 232) 0.0625
(235, 160) 0.0625
(0, 79) 0.0555555555556
(0, 3) 0.0555555555556
(0, 2) 0.0555555555556
(0, 1) 0.0833333333333
(1, 80) 0.0555555555556
(1, 3) 0.0555555555556
(1, 2) 0.0555555555556
(1, 0) 0.0833333333333
(2, 81) 0.00966183574879
(2, 8) 0.00966183574879
(2, 7) 0.00966183574879
(2, 6) 0.00966183574879
(2, 5) 0.00966183574879
(2, 4) 0.00966183574879
(2, 3) 0.0338164251208
(2, 1) 0.00966183574879
(2, 0) 0.00966183574879
(3, 82) 0.00966183574879
(3, 8) 0.00966183574879
(3, 7) 0.00966183574879
(3, 6) 0.00966183574879
(3, 5) 0.00966183574879
(3, 4) 0.00966183574879
(3, 2) 0.0338164251208
(3, 1) 0.00966183574879
: :
(230, 212) 0.04
(230, 205) 0.04
(230, 187) 0.04
(230, 11) 0.04
(231, 230) 0.04
(231, 212) 0.04
(231, 205) 0.04
(231, 187) 0.04
(231, 11) 0.04
(232, 235) 0.0625
(232, 234) 0.0625
(232, 233) 0.0625
(232, 160) 0.0625
(233, 235) 0.0625
(233, 234) 0.0625
(233, 232) 0.0625
(233, 160) 0.0625
(234, 235) 0.0625
(234, 233) 0.0625
(234, 232) 0.0625
(234, 160) 0.0625
(235, 234) 0.0625
(235, 233) 0.0625
(235, 232) 0.0625
(235, 160) 0.0625]