したがって、1つのnumpy配列から疎行列に値をコピーしようとしています。最初の配列は次のようになりますnumpy配列の値を疎行列の特定の場所にコピー
results_array = [[ 3.00000000e+00 1.00000000e+00 4.00000000e+00 1.00000000e+03]
[ 6.00000000e+00 2.00000000e+00 5.00000000e+00 7.00000000e+02]
[ 1.60000000e+01 4.00000000e+00 8.00000000e+00 1.00000000e+03]}
第二の値(又はresults_array[i][1]
)カラムIDを指示する、第3の値(results_array[i][2]
)は、行番号と第4の値(results_array[i][3]
)がその行の値を指示する指示、列対。これまでのところ私が持っているもの
はこれです:
for i in result_array:
sparse_matrix = csc_matrix((i[3],(i[1],i[2])), shape=(14,14))
print "last array", sparse_matrix
私が手出力は次のようになります。
File "C:/Users/Andrew/Google Drive/Uni/Final Year/Research Project/Programming/Mine/First UEA/xl_optim/Runestone 2.py", line 13, in <module>
sparse_matrix = csc_matrix((i[3],(i[1],i[2])), shape=(14,14))
File "C:\Users\Andrew\Anaconda2\lib\site-packages\scipy\sparse\compressed.py", line 48, in __init__
other = self.__class__(coo_matrix(arg1, shape=shape))
File "C:\Users\###\Anaconda2\lib\site-packages\scipy\sparse\coo.py", line 182, in __init__
self._check()
File "C:\Users\###\Anaconda2\lib\site-packages\scipy\sparse\coo.py", line 219, in _check
nnz = self.nnz
File "C:\Users\###\Anaconda2\lib\site-packages\scipy\sparse\coo.py", line 194, in getnnz
nnz = len(self.data)
TypeError: len() of unsized object
私が最初にスパース行列を作成し、繰り返し、それに値を追加する必要があると思います(私は.append
のようなものを想像していますが、マトリックスの特定の場所に)私は空の疎な行列を作成し、それに値を割り当てる方法は考えていません。
さらに詳しい説明が必要な場合はお知らせください。ありがとう!
魔法だこと。どうもありがとうございます。ベクトルは理にかなっています! –