[डुप्लिकेट] प्रसारित करके दो संख्यात्मक सरणियों की यूक्लिडियन दूरी की गणना कैसे करें
मैं दो सुन्न सरणियों की यूक्लिडियन दूरी की गणना करना चाहूंगा।
सरणी में प्रत्येक पंक्ति एक वेक्टर है।
जैसे
a = np.array([125, 20, 210, 55], [11, 97, 111, 71])
b = np.array([51, 19, 35, 65], [59, 80, 37, 60])
मुझे बी में प्रत्येक पंक्ति के साथ प्रत्येक पंक्ति की यूक्लिडियन दूरी की गणना करने की आवश्यकता है।
सरणी का वास्तविक आकार 5000 पंक्तियों और 4000 स्तंभों के रूप में बड़ा हो सकता है।
मुझे पता है कि यह दो फॉर-लूप और एक फॉर-लूप द्वारा कैसे किया जाता है। मुझे इसे सदिश अंकीय सरणी द्वारा हल करने की आवश्यकता है। उदाहरण के लिए एक सरणी को दूसरे की तरह प्रसारित करेंhttps://numpy.org/devdocs/user/theory.broadcasting.html
बिना उपयोग किए
spatial.distance.cdist
लेकिन, मैं यह नहीं कर सकता कि यह कैसे करना है।
किसी भी सहायता की सराहना की जाएगी।
जवाब
AagamSheth
import numpy as np
np.sqrt((np.square(a[:,np.newaxis] - b).sum(axis=2)))