Tôi muốn calcuate khoảng cách eucledian trong nhiều kích thước (24 kích thước) giữa 2 mảng. Tôi đang sử dụng Numpy-Scipy.Khoảng cách đa chiều Eucledian trong Python
Đây là mã của tôi:
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]);
Tuy nhiên, tôi đã sử dụng scipy.spatial.distance.cdist(A[numpy.newaxis,:],B,'euclidean')
để calcuate khoảng cách eucleidan.
Nhưng nó đã cho tôi một lỗi
raise ValueError('XB must be a 2-dimensional array.');
Tôi dường như không hiểu được nó.
Tôi đã tra cứu scipy.spatial.distance.pdist
nhưng không hiểu cách sử dụng?
Có cách nào khác tốt hơn để làm điều đó không?
Có lẽ ['scipy.spatial.distance.euclidean'] (http://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.euclidean.html#scipy.spatial.distance. euclide)? –
nhanh và dễ dàng! Cảm ơn. – garak
Vì vậy, bạn có 2, điểm 24 chiều? Trong trường hợp đó, câu trả lời của @ Mr.E là lựa chọn tốt nhất. Tuy nhiên, khi bạn có nhiều hơn 2 điểm, các hàm 'scipy.spatial.distance' khác nhau sẽ hiệu quả hơn. –