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

python - Numpy: データセットに適用される関数の関数形式のパラメーターをベクトル化する方法

最終的には、Python ではなく C で numpy ベクトル化と関数呼び出しを利用するために、以下のコードの明示的なループをすべて削除したいと考えています。

以下は、python で numpy を使用するために簡略化されています。次の二次関数があります。

入力データ x と同じサイズの出力データ y を指定して、a、b、c の選択を最適化しようとしています (もちろん、これは線形回帰によって行う必要がありますが、ユーモアがあります)。len(x)=100 とします。長さ 100 の結果を取得するために、スカラー a、b、c で​​簡単にベクトル化できます。

a、b、c が [-10,10] の範囲内にある必要があることがわかっているとします。グリッドを構築し、最小二乗誤差の点を選択して最適化します。

1331 個のノードのそれぞれについて、長さ 100 の戻り値の 1331 個すべてを計算したいと思います。

x で quadratic_func を呼び出した結果である 100 個の値を持つ 1331 個のアイテムのリストを取得するためにブロードキャストを利用するにはどうすればよいですか? 答えは、ベクトル化、ブロードキャストなどを使用して、私が探している桁違いの速度向上を得る必要があります。また、答えはquadratic_funcへの呼び出しを使用する必要があります-またはより一般的にはmy_func(* node、x = x)です。

実生活では、凸に近くなく、多くの極小値を持つ非線形関数を最適化しています。「正しい」極小値に到達できる場合に使用するのに最適な関数形式です。その方法は既に知っていますが、より速く到達したいと考えています!

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

python - ブロードキャスト/Pythonで軸に沿ってブール配列を拡張

特定の操作を分離するために、ベクターに沿ってブール値の 1D 配列をブロードキャストしようとしています。

たとえば、ブール配列が次の場合:

行ごとの比較を行いたい私のマトリックスは、次の形式です。

私が望む最終結果は次のようになります。

これはスライスによって実行できることを認識していますが、論理配列を使用して速度を向上させる必要があります。ブール値ベクトルを「拡張」して、行全体で機能する方法はありますか?

アイデアは、関数をすべて1行で計算できるようにすることです。

ありがとうございました!

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

python - Numpy で縮小または拡張してブロードキャストする

次のコードでは、指定されたポイントのすべてのペア間のベクトルの大きさを計算します。NumPy でこの操作を高速化するために、ブロードキャストを使用できます

または外積反復

私の質問は、ブロードキャストまたは外積反復を使用して、最後の軸にペア (拡張) の両方のポイントの座標が含まれる 10x10x6 の形式の配列を作成する方法です。また、関連する方法で、ブロードキャストまたは外積反復を直接使用してペア距離を計算することは可能ですか。つまり、最初に差分ベクトルを計算することなく (リダクション)、10x10 の形式の行列を生成します。

明確にするために、次のコードは低速ループを使用して目的の行列を作成します。

これは、外積反復法を使用して距離を計算する (またはペアの両方のポイントの 6 つの座標を取得してスカラーを生成する他の関数を適用する) 試みに失敗しました。

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

numpy - Numpy で高次元を管理する

私は4つの変数の関数を書きたいです:f(x1,x2,x3,x4)それぞれが異なる次元にあります。

これは、によって達成できますf(x1,x2[newaxis],x3[newaxis,newaxis],x4[newaxis,newaxis,newaxis])

よりスマートな方法を知っていますか?

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

python - 複数の開始値と終了値のベクトル化された NumPy linspace

各行が異なる番号で開始および終了する可能性がある 2D 配列を作成する必要があります。各行の最初と最後の要素が指定され、他のすべての要素が行の長さに応じて補間されると仮定します単純なケースでは、0 で同じ開始点を持ち、以下の W で指定された異なる終了点を持つ 3X3 配列を作成したいとします。

これを行うには、次の方法よりも良い方法はありますか。