問題タブ [vectorization]
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のベクトル化されたIFステートメント?
if
ベクトル全体を操作するのではなく、すべてのケースを操作したいと思います。何を変更する必要がありますか?
c - CでSSE組み込み関数を使用して単一ベクトルの内積を計算する方法
2つのベクトルを掛け合わせようとしています。ここで、一方のベクトルの各要素に、もう一方のベクトルの同じインデックスの要素を掛けます。次に、結果のベクトルのすべての要素を合計して、1つの数値を取得します。たとえば、ベクトル{1,2,3,4}と{5,6,7,8}の計算は次のようになります。
基本的に、私は2つのベクトルの内積を取ります。これを行うためのSSEコマンドがあることは知っていますが、コマンドには組み込み関数が関連付けられていません。この時点では、Cコードでインラインアセンブリを記述したくないので、組み込み関数のみを使用したいと思います。これは一般的な計算のように思われるので、Googleで答えが見つからなかったことに私は驚いています。
注:SSE4.2までをサポートする特定のマイクロアーキテクチャー向けに最適化しています。
r - 転置する必要のある行列をsapplyが返すのに、転置された行列がデータフレームにアタッチされないのはなぜですか?
なぜこれが起こるのか、そしてこれをもっと雄弁に行う方法についての洞察をいただければ幸いです。
sapplyを使用する場合、3x2行列を返したいのですが、2x3行列を返します。どうしてこれなの?そして、なぜこれを別のデータフレームに添付するのが難しいのですか?
これらを付けようとすると、
私が得るエラーは次のとおりです。
以下は望ましい結果をもたらすように見えますが:
変数を操作できません:
戻り値
ありがとう!
r - この種の二重 for ループを高速化する方法は?
R で期待値最大化アルゴリズムをプログラミングしています。計算を高速化するために、このボトルネックをベクトル化したいと考えています。N は k の約 100 倍であることを知っています。
この行列のリストもあります。
私は以下を使用して物事を少しスピードアップしました:
と:
r - R でのコーディングの実践: さまざまなスタイルの長所と短所は何ですか?
require と :: の使用に関する最近の質問は、R でプログラミングするときにどのプログラミング スタイルを使用するか、およびそれらの長所/短所は何かという疑問を提起しました。ソース コードを参照したり、ネットを参照したりすると、さまざまなスタイルが表示されていることがわかります。
私のコードの主な傾向:
重いベクトル化私はインデックス (およびネストされたインデックス) をよく使用します。その結果、コードがわかりにくくなることがありますが、通常は他のソリューションよりもはるかに高速です。例:
x[x < 5] <- 0
代わりにx <- ifelse(x < 5, x, 0)
クリーンアップが必要な一時オブジェクトでメモリが過負荷になるのを避けるために、関数をネストする傾向があります。特に大規模なデータセットを操作する関数では、これは大きな負担になる可能性があります。例:
y <- cbind(x,as.numeric(factor(x)))
代わりにy <- as.numeric(factor(x)) ; z <- cbind(x,y)
たとえば、コードを一度だけ使用する場合でも、多くのカスタム関数を作成します。
sapply
。_ 横になったままになるオブジェクトを作成することなく、読みやすくなると思います。ベクトル化はよりクリーン (かつ高速) であると考えているため、ループは絶対に避けます。
しかし、これについては意見が分かれていることに気付きました。一部の人々は、私の「Perl」プログラミング方法 (または「Lisp」でさえも、私のコード内でこれらすべての括弧が飛んでいます) と呼ぶものから遠ざかる傾向があります。そこまで行かないけど)。
R での優れたコーディング手法は何だと思いますか?
あなたのプログラミング スタイルは何ですか?また、その長所と短所をどのように見ていますか?
python - 各要素が前の要素に依存するNumPy配列の再帰計算をベクトル化することは可能ですか?
Tm
およびtau
は、以前に計算された同じ長さのNumPyベクトルであり、新しいベクトルを作成することが望まれますT
。はi
、必要なものの要素インデックスを示すためにのみ含まれています。
この場合、forループが必要ですか?
loops - FORTRAN でベクトル化されたループを無効にしますか?
FORTRAN でループのベクトル化をバイパスすることは可能ですか? 私は特定のプロジェクトのために F77 標準に従って書いていますが、GNU gfortran は F95 などの最新の FORTRAN でコンパイルできます。特定の FORTRAN 標準がループのベクトル化を回避したかどうか、または gfortran にこれをオフにするフラグ/オプションがあるかどうかを知っている人はいますか?
更新: したがって、私の特定の問題に対する最終的な解決策は、反復変数の更新を許可しない FORTRAN DO ループで「DO」する必要があると思います。これについての言及は、この関連スレッドの @High Performance Mark の返信に記載されています... Loop vectorization and how to avoid it
[フォートに入り、シェルターのヌーブをRANします。]
loops - ループのベクトル化とその回避方法
ループのベクトル化は、すべての右側の式が開始時に計算される場合です。ループがベクトル化されていることを発見しました (FORTRAN 77 では ... 質問しないでください)。反復ごとにループ条件変数を更新する必要がありますが、このベクトル化を回避するにはどうすれば書き直せますか?
関連する投稿で、特に FORTRAN でこの最適化「機能」を無効にする方法を探していますが、ここでは、一般的なケースに対するよりアルゴリズム的な解決策を探しています。
r - ループをなくすためのアドバイスが欲しい
私は 3n + 1 問題 (別名「不思議な数」など) で動作するプログラムを作成しました。しかし、それには二重のループがあります。どうすればベクトル化できますか?
コードは
ありがとう!
python - リストを引数として使用する Numpy ベクトル化
numpyvectorize
関数は便利ですが、関数の引数がスカラーではなくリストの場合はうまく動作しません。例として:
与えます:
関数 f はing しなくても問題なく動作することは理解していvectorize
ますが、引数がスカラーではなくリストを取る関数を (一般的に) ベクトル化する方法を知りたいです。