私はこのリストから最短のEuclidean distanceというリストを意味するmedianaを取得しようとしています。Python:リストにリスト
2つのベクトルの間の距離を返す関数euclidを作成しましたが、2つのforループに問題があります。
このプログラムは
xs=[[1, 1, 1], [3, 2, 1], [1, 0, 3], [1, 2, 3], [4, 4, 4]]
naj = 0
vsota=0
ys=[]
for i,j in enumerate(xs):
for x,y in enumerate(xs):
if j!=y:
vsota=euclid(j,y)
print(vsota," ",j,y)
を[1,2,3]を返す必要がありますが、それは現在返します
2.23606797749979 [1, 1, 1] [3, 2, 1]
2.23606797749979 [1, 1, 1] [1, 0, 3]
2.23606797749979 [1, 1, 1] [1, 2, 3]
5.196152422706632 [1, 1, 1] [4, 4, 4]
2.23606797749979 [3, 2, 1] [1, 1, 1]
3.4641016151377544 [3, 2, 1] [1, 0, 3]
2.8284271247461903 [3, 2, 1] [1, 2, 3]
3.7416573867739413 [3, 2, 1] [4, 4, 4]
2.23606797749979 [1, 0, 3] [1, 1, 1]
3.4641016151377544 [1, 0, 3] [3, 2, 1]
2.0 [1, 0, 3] [1, 2, 3]
5.0990195135927845 [1, 0, 3] [4, 4, 4]
2.23606797749979 [1, 2, 3] [1, 1, 1]
2.8284271247461903 [1, 2, 3] [3, 2, 1]
2.0 [1, 2, 3] [1, 0, 3]
3.7416573867739413 [1, 2, 3] [4, 4, 4]
5.196152422706632 [4, 4, 4] [1, 1, 1]
3.7416573867739413 [4, 4, 4] [3, 2, 1]
5.0990195135927845 [4, 4, 4] [1, 0, 3]
3.7416573867739413 [4, 4, 4] [1, 2, 3]
どのように私は[1,1で始まるすべての数字を合計します、 1]、[3,2,1] ...などを計算し、その距離をそれぞれ比較して、より低い合計でインデックスを返しますか?
あなたはこれを解決しましたか?答えのどれかが役に立ったのですか? – mac