मैं 2 सरणी के बीच एकाधिक आयामों (24 आयाम) में यूक्लेडियन दूरी को कैलकुलेट करना चाहता हूं। मैं Numpy-Scipy का उपयोग कर रहा हूँ।पायथन में बहुआयामी यूक्लेडियन दूरी
import numpy,scipy;
A=numpy.array([116.629, 7192.6, 4535.66, 279714, 176404, 443608, 295522, 1.18399e+07, 7.74233e+06, 2.85839e+08, 2.30168e+08, 5.6919e+08, 168989, 7.48866e+06, 1.45261e+06, 7.49496e+07, 2.13295e+07, 3.74361e+08, 54.5, 3349.39, 262.614, 16175.8, 3693.79, 205865]);
B=numpy.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 151246, 6795630, 4566625, 2.0355328e+08, 1.4250515e+08, 3.2699482e+08, 95635, 4470961, 589043, 29729866, 6124073, 222.3]);
हालांकि, मैं scipy.spatial.distance.cdist(A[numpy.newaxis,:],B,'euclidean')
इस्तेमाल किया eucleidan दूरी calcuate रहे हैं:
यहाँ मेरी कोड है।
लेकिन यह मुझे एक त्रुटि
raise ValueError('XB must be a 2-dimensional array.');
मैं इसे समझने के लिए नहीं लग रहे दे दी है।
मैंने scipy.spatial.distance.pdist
देखा लेकिन इसका उपयोग कैसे नहीं किया जाता है?
क्या ऐसा करने का कोई और बेहतर तरीका है?
शायद ['scipy.spatial.distance.euclidean'] (http://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.euclidean.html#scipy.spatial.distance। यूक्लिडियन)? –
जो कि तेज़ और आसान था! धन्यवाद। – garak
तो, आपके पास 2, 24-आयामी बिंदु हैं? उस स्थिति में, @ श्री ई का जवाब सबसे अच्छा विकल्प है। हालांकि, जब आपके पास 2 से अधिक अंक होते हैं, तो विभिन्न 'scipy.spatial.distance' फ़ंक्शन अधिक कुशल होंगे। –