임계 값 4 인 두 튜플 목록의 유클리드 거리를 계산하려고합니다. 임계 값이 특정 값보다 작 으면 카운터를 증가시킵니다. 각 튜플은 점의 x, y, z 좌표입니다. 난 ..리스트 2와 목록 1의 비교의더 적은 수의 비교로 두 튜플 목록의 유클리드 거리를 비교하십시오.
X = [ (1,2,3),(2,3,4), (4,5,6) ]
Y = [ (1,2,2) , (3,4,5),(6,7,8) ]
from math import sqrt
dist_X = [ sqrt((p[0] - 0)**2 + (p[1] - 0)**2 + (p[2] - 0)**2) for p in X]
dist_Y = [ sqrt((p[0] - 0)**2 + (p[1] - 0)**2 + (p[2] - 0)**2) for p in Y]
for x in dist_X:
print (x , [ i for i,y in enumerate(dist_Y) if abs(x-y) <= 4])
내가 먼저 있도록 원점 (0,0,0)과 각 지점의 유클리드 거리를 계산하는 생각
을 낮출 수 어쨌든 지금 모두 목록 서로 가까이있는 점을 포함하지만 스칼라 값이기 때문에 작동하지 않습니다. 올바른 방향으로 가고 있습니까? 이것을 목록 1의 모든 요소에서 편집
visited1 = [ (1,2,3),(2,3,4), (4,5,6) ]
visited2 = [ (1,2,2) , (3,4,5),(6,7,8) ]
def euclidean(a,b):
return sqrt((a[0] - b[0])**2+(a[1]-b[1])**2+(a[2]-b[2])**2)
comparison = 0
for i,j in enumerate(visited2):
for k,l in enumerate(visited1):
if euclidean(visited2[i],visited1[k]) < 4:
count += 1
comparison += 1
는리스트 2에있는 모든 요소와 비교 .. 난 내가 포인트 주어진 비교를 최소화 할 수있는 방법 (X, Y가 있는지 알고 싶어요 , z) 내가 가지고있는?
이 무엇을 정확하게 탐지 할 수 있습니까? 예를 들어 예상되는 답을주고 설명해 주시겠습니까? – trincot
두 목록 간의 유클리드 거리의 정의가 정확히 무엇입니까 (각각은 여러 좌표로 구성됩니까?). – martineau
목록 2의 원자 1과 원소 사이의 유클리드 거리를 계산하고 싶습니다. 거리가 4보다 작 으면이 값이 필요하지만 list1의 모든 원소가 list2의 모든 원소와 비교되기를 바랍니다. 위에서 수행 한 것과 같은 사전 계산과 같은 비교를 낮추는 방법입니다. 그것은 단지 예일뿐입니다. 예를 들어 우리가 알고있는 값을 건너 뜁니다. – Zeist