問題タブ [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 投票する
2 に答える
178 参照

python - このnumpyの例では、ブロードキャストはどのように適用されていますか?

私はnumpyを学んでいて、ブロードキャストについて少し混乱しています.これが私のセットアップです. 私は2つの行列を持っています

したがって、r は (3*1) 行列であり、y は形状が (3,) であるランク 1 の行列です。

y.dot(r) を実行すると、14 が得られます。numpy が y にブロードキャストを適用すると仮定すると、(1*3) になり、r(3*1) でドット積を実行するため、結果の行列は 1* になります。 1.

ただし、r.dot(y) を実行すると、エラーがスローされます。ここで同じことをしないのはなぜですか?y(1*3) と r を (3*1) にする必要があり、3*3 行列を与える必要があります。この推論のどこが間違っているのでしょうか?

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

python - 追加された配列の形状を取得する Numpy 関数

tl;dr:実際に配列を追加することなく、複数の配列にまたがる numpy ブロードキャストによって返される形状を予測するにはどうすればよいですか?

基本的に 1D 入力が多次元出力になるように、numpy (Python) ブロードキャスト ルールを利用するスクリプトがたくさんあります。基本的な例として、理想気体の法則 (圧力 = rho * R_d * 温度) は次のようになります。

ここでは必要ありませんが、より複雑な関数では、正しい形状で配列を初期化すると非常に便利です。圧力と温度が同じ形状の場合、rho もその形状になります。圧力の形が (n,) で温度の形が (m,) なら、

形状 (n,m) の rho を取得します。rhoIdealこれにより、スクリプトが同じ形状の配列を受け入れ、要素ごとに結果を計算できるようにしながら、をループすることなく温度の複数の値でプロットを作成できます。

私の質問は: 複数の入力と互換性のある形状を返す組み込み関数はありますか? 次のように動作するもの

実際に配列を合計する必要はありませんか?組み込み関数がない場合、適切な実装はどのようになりますか?

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

python - ブロードキャストでnumpy配列をパンダデータフレームに掛ける方法

次のような形状 (4, 3) のデータフレームがあります。

データフレームの各列に形状のnumpy配列(4,)を掛けたい:

numpy では、次のブロードキャスト トリックが機能します。

ただし、pandas データフレームの場合は機能しません。次のエラーが発生します。

助言がありますか?

ありがとう!

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

python - Numpy で `A[tuple(BT)]` を実行する高速な方法

M x N 配列Iがあり、その各行は N 次元配列のインデックスAです。ベクトル化された式で、A から M インデックス付きの値の 1 次元配列を取得したいと考えています。これA[tuple(I.T)]は正しいことですが、プロファイリングでは、ベクトル化されているにもかかわらず非常にコストがかかることがわかりました。また、特にエレガントでも「自然」でもなく、まったく異なることを行いA[I]ますA[I.T]

これを行う正しい方法は何ですか?次のような割り当てにも機能するはずです

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

python - Numpy で 1 次元配列を 3 次元配列に追加する

2 つの配列を追加しようとしています。

みたいなものを出したい

したがって、対応する列の各マトリックスにエントリを追加します。ある種のループでコーディングできることはわかっていますが、よりエレガントで高速なソリューションを使用しようとしています。

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

numpy - 別のより大きな配列内に 3D 配列の値を挿入する最良の方法

これを行うには「pythonic」な方法が必要ですが、、、、または私が探しているものnp.placeではないと思います。大きな配列の位置から始めて、大きな 3D 配列内の値を小さな 3D 配列の値に置き換えたいです。図面を参照してください:np.insertnp.putAB[i,j,k]

A[i+, j+, k+] = B、またはnp.embed(B, A, (i,j,k))のようなものを入力したいのですが、もちろんそれらは正しくありません。

編集:ああ、これがあります。したがって、質問を変更して、これが最善の方法であるかどうかを尋ねる必要があります (「最良」とは、ラップトップで 500x500x50 の浮動小数点数の配列が最速であることを意味します)。

別の 3D 配列内の 1 つの 3D 配列

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

python - Numpy 配列の操作でエラーが発生する

BS モデルの金融ギリシャ語を計算する関数をコーディングしようとしています。
私は次のようなことから始めました:

「...」は、より多くのギリシャ語が計算されていることを意味しますが、ここでは重要ではありません。
それは正常に機能していました。妥当な値、素敵なプロットなどがありました。しかし、私の先生は、これらの値を時間 (x 軸のタウ) だけでなく、S (S - 株価、x 軸) に対しても見たいと言いました。言い換えれば、タウと S の両方の変化に対してギリシャ語を計算する必要があります。

私は次のことを試しました:

両方のバージョンで、次のパラメーターを初期化して実行しました(変数):

最初のケースでは問題なく動作しますが、S (2 番目の関数) を変化させたい場合、次のエラーが発生します。

私は少しグーグルで調べました.Numpyライブラリとそれはデータ型(配列)に何かがあるようです. 私は熟練したプログラマーでも経験豊富なプログラマーでもありません (まだ学習中です)。
S == 100 (S = T) でのみ動作するように見えますが、これは望ましい解決策ではありません。
私はもう試した:

しかし、それは出力するだけです:

これの実用的な解決策を見つけるのを手伝ってください。S をループする必要があるかどうか (試行して失敗しました...)、データ型のトリックを実行するか、別の方法で計算するか (どのように?)、または何か他のことを行うべきかどうかはわかりません。