まず、質問の不明瞭なタイトルについてお詫び申し上げます。理由は私が仕事場での数学的プロセスを特定できなかったからです。ここでPythonでの連続ベクトル減算または「減算畳み込み」?
は、一言で言えば状況です:
- 私は長さの異なる2つのベクトルf1とf2を、持っています。
- f1とf2の間の最小二乗距離を計算したいと思います。
ここでは、(4メガバイトのファイルから生成された)、しかし、私は進んでどのように大規模なベクトルF1に起因する
import numpy as np
def distLstSq(f1,f2):
"Return the least square distance between f1 and f2 per unit element"
return np.sum(np.square(np.subtract(f1,f2)))/len(f1)
f1 = np.arange(100)
f2 = np.random.random_integers(1,100,5)
nBuf = len(f2)
dist = np.empty(len(f1)-nBuf)
for i in range(len(f1)-nBuf):
temp = f1[i:i+nBuf]
dist[i] = distLstSq(temp,f2)
ですが、私は、任意のよりエレガントなニシキヘビ解決策がなかったかどうかを疑問に思いました。少ないCPUリソースで短時間で実行できます。おそらく一種の「減算畳み込み」で、f2がf1の上をスライドする、要素ごとに、各ステップで減算操作を行います。
お寄せいただきありがとうございます!
ベルトラン
の長さに依存しますか? – Divakar
* "私は2つのベクトルf1とf2を持っています..." *しかし* "... aとbの間の距離" *。私は 'a'と' b'は 'f1'と' f2'と仮定しました。あれは正しいですか?また、実行可能なMVCE(http://stackoverflow.com/help/mcve)が役立ちます。 –
フィードバックいただきありがとうございます、私はあなたの発言に従って投稿を更新しました。 –