問題タブ [array-broadcasting]

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.

0 投票する
4 に答える
12560 参照

python - Numpyブロードキャストに相当するMatlab?

Matlab で 3*(大きな数) 行列の各列からサイズ 3 のベクトルを減算する方法を見つけようとしています。もちろん、ループを使用することもできますが、numpy ブロードキャストに少し似た、より効率的なソリューションを見つけようとしています。ああ、それを使用するのに十分なメモリがないため、repmat を使用できません (さらに別の 3*(大きな数) 行列を作成するため)...

これは可能ですか?

0 投票する
3 に答える
13433 参照

python - Numpy 配列ブロードキャスト ルール

Numpy での配列ブロードキャストのルールを理解するのに苦労しています。

明らかに、同じ次元と形状の 2 つの配列に対して要素ごとの乗算を実行すると、すべて問題ありません。また、多次元配列にスカラーを掛けると機能します。これはわかります。

しかし、形状の異なる2 つの N 次元配列がある場合、放送規則が正確に何であるかは私にはわかりません。このドキュメント/チュートリアルでは、次のことを説明しています:ブロードキャストするには、操作の両方の配列の後続軸のサイズが同じであるか、いずれかが 1 である必要があります。

さて、Nを追跡することで、M x N配列内のを参照していると思います。つまり、2 つの 2D 配列 (行列) を同じ数の列で乗算しようとすると、うまくいくのでしょうか? そうでないことを除いて...

との両方AB2 つの列があるため、これでうまくいくと思いました。したがって、「トレーリング軸」という用語と、それが N 次元配列にどのように適用されるかについて、ここで誤解していると思われます。

私の例が機能しない理由と、「後続軸」の意味を誰かが説明できますか?

0 投票する
4 に答える
1106 参照

python - アレイをブロードキャストするためのより良い方法はありますか?

b配列を別の配列との算術演算の場合と同じ形にブロードキャストしたいと思いaます。

たとえば、a.shape = (3,3)とがスカラーだった場合、形状がスカラーであり、スカラーで埋められてbいる配列を取得したいと思います。(3,3)

これを行う1つの方法は次のとおりです。

これは実際には機能しますが、少し奇妙に見えるので仕方がなく、私がやろうとしていたコードを見ている他の人にはわかりません。

これを行うためのよりエレガントな方法はありますか?のドキュメントを見てきましたがnp.broadcast、桁違いに遅くなっています。

0 投票する
1 に答える
119473 参照

python - Numpy `ValueError: オペランドを形状と一緒にブロードキャストできませんでした ...`

私はpython 2.7を使用しており、1.00000000から3.0000000008までのランダムデータの予測を試みています。私の配列には約196個のアイテムがあり、エラーが発生します

この問題を自分で解決することはできないようです。関連ドキュメントへのヘルプやリンクをいただければ幸いです。

このエラーを生成するために使用しているコードは次のとおりです

0 投票する
3 に答える
1748 参照

python - ビューとしてのみnumpy 3Dメッシュグリッド

間隔で定義された立方体グリッドがありますxi,yi,zi:

Wそのグリッドにスカラー値のセットもあります。W.shape() == size. 入力として必要な scipy の線形補間を使用したいと思います。

クラスscipy.interpolate.LinearNDInterpolator(points, values):

パラメーター :

points: float の ndarray、形状(npoints, ndims)データ ポイントの座標。

values: float または複雑な形状の(npoints, ...)データ値の ndarray。

pointsから(魔法のブロードキャストを介して)の偽のセットを作成するにはどうすればよいxi,yi,ziですか?現在、補間関数に供給する中間配列を作成しています - より良い方法はありますか?

関連する質問: 3D の Numpy meshgrid。この投稿の回答は実際にグリッドを作成します-別の関数への入力としてシミュレートしたいだけです(純粋なnumpyソリューションが推奨されます)。

0 投票する
2 に答える
219 参照

numpy - Swap a subset of multi-values in numpy

Given a starting numpy array that looks like:

What it the most efficient way to swap one set of values for another when there are duplicates? For example, let

An inefficient swapping method would iterate through s1 and s2 as so:

Giving as output

Is there a way to do this essentially in-place without the zip loop?

0 投票する
1 に答える
637 参照

python - Numpy:ブロードキャスト+ブールインデックス

私は次のnumpy配列を持っています

次の疑似コードを効率的な実際のコードに変換するにはどうすればよいですか?配列は巨大で、おそらく1億を超える要素である可能性があります。

0 投票する
1 に答える
239 参照

python - インデックス付き配列Numpyを介したブロードキャスト

私は次のことを実行するためのNumpy(つまりより高速な)方法を探しています:

リスト内包表記を削除して、このようなことをしたいのですが(ただし、これは機能しないことはわかっています)

arrは常に、長さが。の長さに等しい整数のネストされたリストですx。内部リストは必ずしも同じ長さではありません(つまりarr、不規則なリストです)

0 投票する
1 に答える
4828 参照

python - Numpy 3D 配列を 1D 配列で乗算する

3D 配列を 1D 配列で乗算して、3 次元 (深さ: d) に沿った各 2D 配列が次のように計算されるようにしようとしています。

1D_array[d]*2D_array

そして、次のような配列になります。

これは、np.ones((3,2,2)) を [1,2,3] で正しく乗算した結果です。

私はしばらくの間試みてきましたが、何をしようともこの結果にはなりません。テーマのバリエーションだけです。これを正しく行うにはどうすればよいですか?

助けてくれてありがとう。

0 投票する
2 に答える
3129 参照

python - 配列を異なる形状にブロードキャストする (「偽の」次元を追加する)

Python (numpy を使用) では、配列を別の形状にブロードキャストできます。

fortranで同じ効果を達成する方法はありますか? 配列が渡されることを期待するサブルーチンがあり2Dます。上で示したように、1 次元配列を 2 次元に「ブロードキャスト」したいと考えています。問題になる可能性が高いように思われるので、私の 2D 配列に明示的なインターフェイスがあります。

補足として、この機能は組み込みによって提供される可能性があると思いました--次のようなもの:reshape

orderしかし、ドキュメントを読んだ後、1​​から「N」までのすべての数字を含める必要があるように見えるので、これは可能ではないと思います.

編集:もう少し明確にするために、入力に対して次のaような変換をいくつか作成する簡単な方法を探しています。

ケース1

ケース 2

任意の次元のボーナス ポイント1 :

1つの免責事項 - 私は実際には回答者にボーナスポイントを与えるほどのスーパーパワーを持っていません;-)