정렬 된 쌍의 목록 (격자 좌표를 나타내는)을 저장하기 위해 numpy 배열을 사용하고 있습니다. 필자가 작성한 알고리즘은 새로 생성 된 정렬 된 쌍이 이미이 배열에 있는지 확인해야합니다. 다음은 코드의 회로도입니다.numpy 배열로 정렬 된 쌍을 찾습니다.
cluster=np.array([[x1,y1]])
cluster=np.append(cluster,[[x2,y2]],axis=0)
cluster=np.append...etc.
new_spin=np.array([[x,y]])
if new_spin in cluster==False:
do something
이 코드의 문제점은 위양성입니다. x 또는 y가 클러스터에 나타나면 new_spin in cluster
이 true로 평가됩니다. 처음에 나는 x
과 y
이 cluster
에 나타나는지 간단하게 고쳐야한다고 생각했으나 순서쌍으로 나타나지는 않습니다. 그들이 주문한 쌍으로 나타나는 것을 확인하기 위해 나는 x
과 y
이 나타나는 곳에 색인을 찾아야 만하고, 그것들을 비교해 보았습니다. 그것들은 매우 clunky하고 세련되지 않은 것처럼 보이고, 더 나은 해결책이 있어야합니다. 그러나, 나는 그것을 스스로 해결할 수 없었다.
도움 주셔서 감사합니다. 예를 통해
numpy <1.7.와 관련이있는 작은 버그로 인해 다소 귀찮습니다.하지만 동일한 세트를 여러 번 쿼리하면 정렬을 사용하거나 'scipy.spatial.cKDTree'로 무언가를 해킹해야합니다. numpy의 현재 버그가 너무 성가시다면. – seberg