問題タブ [adjacency-matrix]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python でのトリプル表現を使用した行列の追加
で行列の加算を行う方法を知りたいのPython
ですが、最善の方法を見つけようとしてかなりの数の障害に遭遇しています。
ここに問題があります。私が今できる限り最善の形で書いたものです。
有向グラフの隣接行列であるデータセットがあります。このグラフでは、生物学的ウイルスの分離株が有向エッジを介して別のインフルエンザウイルスに接続され、 から に進みIsolate 1
ますIsolate 2
。この隣接行列の現在の表現は次のとおりです。
上記のように、特定のパーツについて、すべてのアイソレートが別のアイソレートに接続されているわけではありません。同じタイプの接続を示す別の疎行列がありますが、部分は異なります。これは次のようなものです。
ここでの違いは、ID2 が ID4 に接続されているのではなく、ID1 が ID4 に接続されていることです。
私がやりたいのは、これらの 2 つの隣接行列を追加することです。私が期待するのは次のとおりです。
Python
パッケージを使用してこれを効率的に行う方法を知っている人はいますか? 私の作業のほとんどは の HTML ノートブックで行われており、この分析を行うために にiPython
大きく依存してきました。Pandas 0.11
データを巨大なマトリックス (500x500) に変換することを避けることができる答えがあれば、それが最善です!
みんなありがとう!
python - numpy 構造化配列に新しいレコードを追加する
これは、numpy 配列に関する以前の学習の続きです。
リストの要素から構造化配列が作成され、その後、値が入力されます (以下には示されていません)。
設定された配列は次のようになります。
1.上記に新しい頂点を追加するにはどうすればよいですか?
2.頂点が追加されたら、次の配列を構造化配列に追加する最もクリーンなプロセスは何ですか (注: この配列のすべての頂点が新しいわけではありません)。
予想される出力(ご容赦ください):
python - 大きな行列の固有値を計算する最速の方法
今までは numpy.linalg.eigvals を使用して、少なくとも 1000 行/列の二次行列の固有値を計算していましたが、ほとんどの場合、そのエントリの約 5 分の 1 が非ゼロです (これを疎行列)。scipy がより良い仕事をする可能性があることを示す別のトピックを見つけました。
ただし、サイズが増加する数十万の大きな行列の固有値を計算する必要があるため (おそらく最大 20000 行/列で、すべての固有値が必要です)、これには常に非常に長い時間がかかります。ほんの少しでもスピードアップできれば、努力する価値はあるでしょう。
私の質問は次のとおりです。自分自身をPythonに制限しない場合、固有値を計算するより高速な方法はありますか?
r - 本質的に非数値である生データから隣接行列を作成する方法
私が取り組んでいる入力の例を以下に示します。
上記のデータは、アプリのユーザーが聴いた音楽の記録です。
以下の例に対応する隣接行列を生成したいと思います。
これはRでどのように可能になるでしょうか。ヒントや指針をいただければ幸いです。
お時間とご協力いただきありがとうございます。
r - Rの行列演算で最短経路を計算するには?
グラフを表す隣接行列があります。
フロイドのアルゴリズムを実行して、頂点の各ペア間の最短経路を計算したいと考えています。
そして、O(N3) の複雑さでそれらを確実に繰り返すことができます。
ただし、n = 10^3 の場合、R は反復に耐えられません。そこで、行列演算でフロイド アルゴリズムを実行する方法を探しています。
追加の参照
理論的には、 MIT Isomap mat fileを参照できます。
しかし、マットを数回複製するR で「repmat」を実行する方法については、まだ混乱しています。
algorithm - すべてのラベルが他のすべてのラベルに隣接する、n 個のラベルを使用したグリッドのラベル付け
n個の個別のラベルを持つグリッドを作成しようとしています.n個のラベルのいずれかで各セルにラベルが付けられ、すべてのラベルがグリッド内のどこかに(エッジごとに)他のすべてのラベルに隣接するようになります(場所は気にしません)。ラベルは何度でも自由に表示できますが、グリッドはできるだけ小さくしたいと考えています。例として、1 から 5 までの 5 つのラベルのグリッドを次に示します。
これを手動で生成することは、少数のラベルではそれほど悪くはありませんが、多数のラベルに対して妥当なサイズのグリッドを生成するのは非常に難しいようです。力ずくの捜索。これは以前に調査されたにちがいないと思いますが、私が見つけた最も近いものは De Bruijn tori であり、私が探しているものとはまったく異なります。どんな助けでも大歓迎です。
編集:次の改善された説明についてBenawiiに感謝します:
「整数 n が与えられた場合、x≠y および x,y ∈ {1,...,n} であるすべてのペア (x,y) に対して、値が行列内に隣接するセルのペアが存在する、可能な限り最小の行列を生成します。 x と y です。」
java - スレッド「メイン」での例外 java.lang.ArrayIndexOutOfBoundsException: 3 at AdjMatrixDigraph.main(AdjMatrixDigraph.java:90)
私のコードでは、隣接行列を導出しようとしていますが、次の例外が発生しています。
AdjMatrixDigraph.java
StdOut.java
matlab - MATLAB の大規模な疎行列の場合、ゼロ以外のエントリの列全体の累積和を計算しますか?
MATLABには、遷移確率を含む大きな行列transition_probs
と、隣接行列がありadj_mat
ます。列に沿って遷移行列の累積合計を計算し、要素ごとに、この方法でマスクとして機能する隣接行列に対して乗算します。
cumsum
マトリックスのすべてのエントリが非ゼロであるため、MEMORY エラーが発生します。
そもそもゼロ以外のエントリがある累積合計エントリのみを使用することで、この問題を回避したいと思います。for
ループを使用せずにこれを行うにはどうすればよいでしょうか?