問題タブ [cross-product]
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.
bash - AWK で同じ外積値を持つレコードを削除する
コマンドを使用して file.txt > file2.txt のレコードの外積を行う場合:
join file1.txt{,} -j999 > file2.txt
次のような file1.txt のすべてのレコードを含む file1.txt の各レコードを取得します。
サンプル データセット
私は得る
r1 r1、r2 r2、レコードなどは必要ありません...
クロス積を実行しているときに可能であれば、期待される結果を得るにはどうすればよいですか? そうでない場合、結合 file1.txt{,} -j 999 の処理後にレコードを削除するにはどうすればよいですか
私は別の awk コマンドでこれを試しました:
各レコードのシリアル番号が 1,2,3,... であるため、次のように file2.txt があります。
単純にシリアル番号を比較し、それらが等しくない場合はそれらのレコードを印刷します。しかし、次のような望ましくない結果が得られます。
$1!=$13 より前のすべてのレコードをスキップしていることがわかります。したがって、次のような行がありません。
パターン r1 r1、r2 r2、... にあるレコードのみをスキップする必要があります。
アップデート
1列目と13列目はシリアルナンバーです。
python - einsum との外積
多くの 3x1 ベクトル ペアの外積をできるだけ速く計算しようとしています。これ
は正しい答えを与えますが、同様の質問に対するこの答えに動機付けられて、私はそれeinsum
が私をどこかに連れて行くと思いました. 両方あることが分かった
外積を計算しますが、そのパフォーマンスは期待外れです: どちらの方法も よりもはるかに悪いパフォーマンスを発揮しますnp.cross
:
sを改善する方法についてのアイデアはありますeinsum
か?
r - 外積の反対: 2 つの行列の交点から新しい行列を作成する方法は?
R に 2 つのテーブル (女性と男性) があり、存在と不在のデータがあります。各ペア間で共有されていないセルの数を見つけるために、それらの間でペアごとの比較を行いたいと思います(つまり、セルの合計は女性では1に等しく、男性ではなく、その逆) .
外積 (%*%) は、私が必要としているものとは反対のことを知っています。これは、男性と女性のペア間で共有されるセルの合計を含む新しい行列を作成します (つまり、両方のセルの合計が 1 に等しい)。
データセットの例を次に示します。
したがって、外積を計算すると
私はこれを得る
しかし、私はこれが必要です(最初の行のみが表示されています)
実際には、私のデータセットは対称的ではありません (47 人の女性と 32 人の男性がいます)。
助けてくれてありがとう!!!
r - 2 セットの ID からエッジリスト/隣接マトリックスを作成する最も効率的な方法は何ですか?
これらの質問1、2に触発されました。私はadata.table
をオブジェクトに変えようとしadjacency matrix/edgelist
ていigraph
ます。ペアリングの目的で使用される 2 つの列 ( A
、B
) を持つデータセットがあります。IDs
つまり、A
は を表し、または 頂点links
をB
含みます。nodes
私のデータセットでは、各列の一意の長さは 25352
x75352
です。adjacency matrix
これらは大きなネットワークを作成するため、かを取得する最も効率的な方法を見つけようとしていますedgelist
。これまでにこれらの方法を試しました:
更新 1: @Axeman の次のコメント
結果 1
merge
インはより高速です。(fn4)
アイデアや提案は非常に高く評価されます。
警告:
fn4
とはより高速で、のにfn6
依存し、重複した接続を作成します。さらに、接続されていないすべての頂点がグラフから削除されるため、これも誤解を招く可能性があります。cartesian product
merge
temp$B.x != temp$B.y