[duplicate] yayınlayarak iki uyuşmuş dizinin öklid mesafesinin nasıl hesaplanacağı

Aug 16 2020

İki uyuşuk dizinin öklid mesafesini hesaplamak istiyorum.

Dizideki her satır bir vektördür.

Örneğin

a = np.array([125, 20, 210, 55], [11, 97, 111, 71])
b = np.array([51, 19, 35, 65], [59, 80, 37, 60])

A'daki her satırın öklid mesafesini b'deki her satırla hesaplamam gerekiyor.

Dizinin gerçek boyutu 5000 satır ve 4000 sütun kadar büyük olabilir.

Bunu iki for-loop ve bir for-loop ile nasıl yapacağımı biliyorum. Vektörize edilmiş numpy dizisiyle çözmem gerekiyor. örneğin bir diziyi başka birine yayınlamak gibihttps://numpy.org/devdocs/user/theory.broadcasting.html

kullanmadan

 spatial.distance.cdist

ama nasıl yapılacağını çözemiyorum.

Herhangi bir yardım memnuniyetle karşılanacaktır.

Yanıtlar

AagamSheth Aug 16 2020 at 13:03
import numpy as np

np.sqrt((np.square(a[:,np.newaxis] - b).sum(axis=2)))