BFS出力配列に基づいて行単位で疎行列の要素を選択しようとしています。私のBFS出力がBFS出力に基づいて疎行列の要素を選択する方法
[1, 2, 3, 6, 4, 7, 5, 8, 11, 9, 12, 10, 13, 15, 14, 16, 17, 18, 19, 20]
であり、例えば20x20の疎行列を持っているとします。
ここでは、BFS出力を行インデックスとして使用し、BFS出力配列とプロットと同じ順序でスパース行列から非ゼロ値を選択します。ここで私はいくつかの仕事をすることができますが、私が望むものを完全には私のコードです。上記のコードで
a = numpy.loadtxt('sparsematrix.txt', float, delimiter=',') # import data
y = numpy.reshape(a, np.size(a))
pos = np.delete(y, np.arange(0, y.size, 19))
plt.plot(pos)
plt.xlabel(sample)
plt.ylabel(position)
問題は:
- それは 私のBFS出力の定義された順序で行方向のすべての値を選択し、ではありません。 (行インデックス番号 としてBFS出力配列を使用して、0以外の値を1つずつ選択する必要があります)
- すべての値を選択します。偶数はゼロです。 - ゼロ以外の値だけを取得する方法
- インデックス作成は0から開始され、19に進みます。インデックス作成を1から開始します。
あなたが望むものはすぐには分かりません。 1)マトリックスから、bfs出力配列のインデックスで指定された順序で行を選択します。 2)各行の最初の列から始まる選択された行の非ゼロ要素を選択します(順序は重要ですか?)3)非ゼロ要素のリストを表示しますか?例:bfs_output = [1,2,0];行列= [[0 3 1] [0 2 0] [4 0 0]];リスト= [2 4 3 1]。また、0ではなく1から始める索引は何ですか?なぜですか? –
はい、あなたは絶対に正しいと仮定しています。 私はモデリングをしているので私には問題があります。ここでは順序はbfs_outputによって決定され、Row | Col:11行目、12行目、13行目...のように1行ずつ0以外の値を選択する必要があります。 2列目は21,22,23のようにしなければなりません。 bfs_outputが終了するまで選択を続けます。 私は生物学モデルをモデリングしているので、系は少なくとも1分子で初期値は0でなくてはなりません。したがって、分子数と一致させるのは簡単です。 私はこれについて少し質問がありますか? – Napster
偉大な、私の答えはあなたの目的に適しています。確かにあなたの質問をしてください、私はできれば答えるとコメントに合うように十分小さい場合:) –