[解決済み] python で scipy.spatial.distance.cdist(X, Y) を使用して点群間の距離を求める。
2022-02-11 05:15:49
質問
Aというデータの配列があるのですが、以下のような感じです。
array([[0.59, 1.23], [0.89, 1.67], [0.21,0.99]...])
で、[x,y]の点のセットが約400個入っています。A の各点の集合と、A と全く同じで長さが半分の配列 B の各点の集合との間の距離を求めたいのです(つまり、約 200 組の [x,y] 点)。つまり、A のすべての [x,y] 値に対する B の q 番目の [x,y] 値の組の間の距離を求めたい場合、次のような方法を試してみました。
import scipy.spatial.distance
for q in range(0,len(B)):
y=scipy.spatial.distance.cdist(A,B[:q,:])
が、これではうまくいかないと思います。私はただ、Aのすべての点に対するBのq番目の行の間の距離を示す出力が欲しいだけなのです。
どのように解決するのですか?
2つの解決策があります。
行列全体を直接計算し、A と B[q] の間の値について q 番目の列にアクセスします。
d = scipy.spatial.distance.cdist(A,B)
for q in range(len(B)):
y = d[:,q]
print y
出来上がった行列が大きすぎて、メモリに保持できない場合。こうすればいい。
for q in range(len(B)):
y = scipy.spatial.distance.cdist(A,[B[q]])
print y
関連
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] Pythonで型をチェックする標準的な方法は何ですか?
-
[解決済み] Python 3 の "python -m SimpleHTTPServer" に相当するものは何ですか?
-
[解決済み] Pythonでnullオブジェクトを参照する
-
[解決済み] Pythonの旧スタイルのクラスと新スタイルのクラスの違いは何ですか?
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み】venv, pyvenv, pyenv, virtualenv, virtualenvwrapper, pipenvなどの違いは何ですか?
-
[解決済み】type()とisinstance()の違いは何ですか?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピロウズ画像色処理の具体的な活用方法
-
python call matlab メソッドの詳細
-
Pythonによるjieba分割ライブラリ
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
Python LeNetネットワークの説明とpytorchでの実装
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】IndexError: invalid index to scalar variableを修正する方法
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)