問題タブ [symmetric]
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.
r - Rで対称行列を対角行列にする
私は対称行列 (例: M <- matrix(1:4, ncol = 2)
) を持っており、オフの対角要素を に設定したいと考えてい0
ます。より賢い方法はありdiag(diag(M), ncol = ncol(M))
ますか?
注:diag
の使用はサポートされておらず、などdiag(M, ncol = ncol(M))
のオプションもありません。diag(M, as.matrix = TRUE)
python - Numpy - 多くのゼロエントリで行列の乗算が速くなりますか?
問題: numpy で、M1
別の matrix で乗算しているマトリックスがありM2
ます。
M1
結果の行列が対称になり、上位の値のみが必要になるため、値の半分を節約できることがわかっていk
ます。
だから私は半分の値をゼロにするために使用することを考えています.float操作全体を行うのではなく、見てすぐに停止できるように、基礎となるC関数がnumpy.tril
乗算に対して高速になることを期待しています.a*b
a==0
a==0
私はこれを計ることができることを知っていますが、これは一般的な関心の問題だと思います.
M1
はまばらではなく、その半分を考慮する必要がないことに注意してください。
おそらく、50% の計算を節約するためのさらに良い方法があるでしょうか?
背景:これは
...私の言いたいことがわかるなら。
例:これは発生する 1 つのポイントにすぎませんが、最終的には、
- |A| x |A| 行列
p(A|B)
(A と B は同じ変数) - 1×|A| マトリックス
p(B)
- 結果は |A| です。x |A|
p(A,B) = p(A|B)*p(B)
対角線はそれ自体が与えられた値の確率であり、対角線の上または下の部分は残りの半分の複製であるため気にしない行列。健全性チェックには適していますが、結局のところ不要です。
ここでは、実際には内積ではないことに注意してください。しかし、p(A|B) につながる計算の半分も不要だと思います。
更新: このアプリケーションでは、A と B が互いに素になるように制限するという、より合理的なアプローチを追求します。次に、すべての行列のサイズが縮小されます。これは numpy でエレガントに実行できますが、コードの読み取りがいくらか複雑になります。
結局、それは意味がありませんでした。唯一のオプションはM1.shape[0]-1
、三角形を再作成する部分行列を作成することですが、それでは確かにオーバーヘッドが大きくなりすぎます。
nlp - 2 つの文書が共有するトークンの割合を、spacy で求める
nltk の場合は次のようになります。
spacy の方が高速なので、spacy で実行しようとしていますが、トークン オブジェクトはこれに対する迅速な解決策を提供していないようです。何か案は?
皆さんありがとう。
arrays - 反転を使用して配列をソートするための最適なアルゴリズム
私はデータを処理するプログラムで作業しています。ただし、コードを効率的にしたいので、実行時間が配列の反転数に依存しないソートアルゴリズムが必要なので、昇順でソートできます。配列の順序は常に次のとおりです。
n = 配列のサイズ
リスト = (1,2,3,...,(n/2 -1), (n/2),(n/2 + 1),...3,2,1
配列の反転の合計が次のようになることはわかっています。
- (n/2 -1) + (n/2 -2) + (n/2 - 3) +...+ 1
これは対称配列の多くの反転であると思います。配列の順序が常にそのようなものであることを知っているので、O(n) 時間でそれらをソートするアルゴリズムが必要です。挿入ソートの複雑さは配列の反転数に依存することは知っていますが、配列の反転数が n に依存するかどうかはわかりません