ご挨拶、
これがばかげた質問かどうかはわかりません。
3 つの numpy 配列 A1、A2、A3、および 3 つの浮動小数点数 c1、c2、c3 があるとします。
B = A1*c1+ A2*c2+ A3*c3 を評価したい
たとえば、これを numpy で計算します。
E1 = A1*c1
E2 = A2*c2
E3 = A3*c3
D1 = E1+E2
B = D1+E3
それともそれよりも賢いですか?C++ では、この種の操作をうまく抽象化する方法がありました。
一連の一般的な 'LC' テンプレート関数を定義しました。線形結合の LC は次のようになります。
template<class T,class D>
void LC( T & R,
T & L0,D C0,
T & L1,D C1,
T & L2,D C2)
{
R = L0*C0
+L1*C1
+L2*C2;
}
これをさまざまなタイプに特化し、
たとえば、配列の場合、コードは次のようになります
for (int i=0; i<L0.length; i++)
R.array[i] =
L0.array[i]*C0 +
L1.array[i]*C1 +
L2.array[i]*C2;
したがって、新しい中間配列を作成する必要がなくなります。
これは面倒に見えるかもしれませんが、本当にうまくいきました。
Pythonでも同様のことができますが、必要かどうかはわかりません。
洞察をお寄せいただきありがとうございます。-ニック