問題タブ [cumsum]
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 - numpy でランダムな要素を描画する
私は要素確率の配列を持っています[0.1, 0.2, 0.5, 0.2]
。配列の合計は 1.0 になります。
プレーンな Python または numpy を使用して、確率に比例して要素を描画したいと思います。最初の要素は約 10%、2 番目の要素は 20%、3 番目の要素は 50% などです。「描画」は、描画された要素のインデックスを返す必要があります。
私はこれを思いついた:
うまくいきますが、複雑すぎます。もっと良い方法があるはずです。ありがとう。
python - python/numpyでデルタフィルターを高速化する
私は(とりわけ)RGB画像にデルタフィルターを適用しなければならないデコンプレッサーを書いています。つまり、最初のピクセルのみが絶対(R1、G1、B1)で、他のすべてのピクセルが(R [n] -R [n-1]、G [n] -G [n-1)の形式である画像を読み取ります。 ]、B [n] -B [n-1])、それらを標準RGBに変換します。
現在、私は次のようにnumpyを使用しています。
どこ
- 1行目は、元の画像の1D配列を作成します。
2行目はそれを形に変えます
/li>3行目は実際のデフィルタリングを実行します
- 4行目は再び1D配列に変換されます
問題は、それが私のニーズには遅すぎるということです。プロファイルを作成したところ、アレイの再形成にかなりの時間が費やされていることがわかりました。
だから私は疑問に思います:形を変えるのを避けるか、それをスピードアップする方法はありますか?
ノート:
- このためにC拡張機能を作成する必要はありません。
- 私はすでにマルチスレッドを使用しています
python - 値の Numpy 1d Array CumSquare
の機能をエミュレートしようとしてnumpy.cumsum()
いますが、値の累積二乗を取得する必要があります。
例: [1,2,3,4] の配列があります。
numpy.cumsum(array)
を返すために使用できますarray([1,3,6,10])
。私の目標は、値の累積二乗を取得するためにいくつかの高速なでこぼこのトリックを使用することです。
リストを使用する純粋な Python の場合:
を試してみnumpy.cumprod()
ましたが、これは累積積であり、値の累積二乗和ではありません。NumPy を使用したいという私の願望は、純粋に速度に基づいています。を使用cumsum()
すると、 for ループを使用するよりも大幅に高速になります (これは理にかなっています)。
python - NaNを考慮したnumpy cumsum
私は簡潔な方法を探しています:
に:
私が現在できる最善のことは次のとおりです。
同じことを達成するためのより短い方法はありますか?2D 配列の軸に沿って cumsum を実行するのはどうですか?
r - 関数のベクトル化: 減衰パラメーターを使用した cumsum
関数のバリエーションを作成しましたcumsum
。ここでは、現在の値を追加する前に、前の合計に減衰係数を掛けます。
バイナリ変数を使用して効果を明確にするデモを次に示します。
この関数をコンパイルすると、大幅に高速化されます。
しかし、ベクトル化するとさらに改善されると思います。何か案は?
arrays - 行列の累積合計
私は次のようなマトリックスを持っています
行ごとと列ごとの累積合計を計算したいのですが、結果は次のようになります。
これをRですばやく作成する方法についてのアイデアはありますか?(おそらく関数cumsumを使用しています)(私は巨大な行列を持っています)
ありがとう!
matlab - Matlab: 貪欲な視点による cumsum と網羅的な一意の要素のインデックス作成
前の質問を展開して、次の要素を持つ2つの行列を操作する方法を理解しようとしています(答えやすくするために問題を単純化しようとします) :
最初の行列:
2 番目のマトリックス:
2 番目のマトリックス値が次のとおりであると仮定しましょう。
ここで、 Val.Mat2: の値を累積VM2CS = cumsum(sort(Val.Mat2))
し、列ごとに集計制約を設定し、cstr = 100;
制約の結果を行列で収集します。result = sum(VM2CS <= cnstrn);
######################## 問題 (複雑さが増す 2 つの側面) ################
- 側面 1: cumsum が zero(0) の要素を無視する方法。したがって、結果は次のようになります
result = 2 2 1
。私は試しました:result = sum(cumsum(sort(VM2CS))<=cstr ~=0)
成功しませんでした。 - 側面 2:
Mat1
要素はMat2
マトリックス内で繰り返されます (pe Mat1(1) 要素は Mat1(8) と同じで、値はそれぞれ 18 と 82 です。Mat1(6) と Mat1(7) も繰り返されます)。パースペクティブを使用して最終結果で同じ要素を1回だけ使用して、行ごとに同じ数の一意の要素を含めるにはどうすればよいですか(ゼロ(0)を除外)? 期待される結果は次のとおりです。
側面 2 に答えるのは簡単ではないことはわかっていますが、解決策を指摘することも役立つはずです。同じ有用な例がThomas G. Robertazzi教授によって「 Planning Telecommunication Networks 」で提案されていますが、私はこの本を今手元に持っておらず、購入する余裕もありません。
python - NumPy/SciPyで一般化された累積関数?
numpy または scipy (または他のライブラリ) に、cumsum と cumprod の概念を任意の関数に一般化する関数はありますか。たとえば、(理論上の)関数を考えてみましょう
func は、2 つの float を受け取り、float を返す関数です。特定のケース
と
それぞれ cumsum と cumprod です。たとえば、
そして私はそれを次のように適用します:
をお願いします。
python - Numpyを使用して範囲内の数値をカウントする
私は、特定の範囲に入る番号を追加し、対応する番号をリストに追加するコードを作成しようとしています。また、cumsum範囲から範囲を引き出す必要があります。
r - 条件が満たされたときに cumsum を停止しますか?
次のようなデータフレーム内の 2 つの列で累積的な要約を実行したいと思います。
最終的なデータフレームは次のようになります。
基本的に私が求めているのは、col A が変更されるたびに 1 にリセットして、再度 cumsum の実行を開始するという条件で cumsum を実行するにはどうすればよいかということです。
ありがとう!