問題

我想計算X和Y之間的euclidean距離,其中X不是靜態的.所以,X是透過範圍的組合定義的.:

 a= np.arange(0.2,0.41,0.1)
b= np.arange(2,8,1)
c= np.arange(40,61,5)
d= np.arange(40,61,5)
e= np.arange(0,11,5)
f= np.arange(25,71,5)

from itertools import product
X = list(product(a,b,c,d,e,f))
X = np.around(X,2)

from scipy.spatial.distance import euclidean
dis = []
for x in np.nditer(X):
    d = euclidean(x,[0.2,2,40,40,0,25]) #Inset Y here
    dis.append(d)

min(dis)
 

因為在這種情況下,為了測試一切是否按我想要工作,我輸入Y,這是X的可能值之一,我希望我的最小距離是0,但在這種情況下,它不是這樣(~47).

  最佳答案

問題是您正在迭代X中的每個單獨數字,而不僅僅是迭代行.只需刪除對np.nditer(X)的呼叫並直接迭代X

 for x in np.nditer(X):
 

應該是

 for x in X:
 

  相同標籤的其他問題

pythonscipydistance