나는 N 포인트 (x 및 y 좌표)를 유지하는 모양이 2 차원 인 (N, 2) 배열을 가지고 있습니다. 예를 들어 :여러 축으로 2D numpy 배열 정렬
array([[3, 2],
[6, 2],
[3, 6],
[3, 4],
[5, 3]])
내 포인트에 의해 정렬이되도록 정렬하고자하는 X 같은 좌표의 경우 Y로 다음 X 좌표합니다. 위의 배열은 다음과 같이한다 그래서이 정상적인 파이썬리스트 인 경우
array([[3, 2],
[3, 4],
[3, 6],
[5, 3],
[6, 2]])
, 난 그저 내가하고 싶은 일을하는 비교기를 정의하는 것이지만, 지금까지 내가 말할 수있는, NumPy와의 정렬 기능하지 않습니다 사용자 정의 비교기를 수락하십시오. 어떤 아이디어?
편집 : 아이디어를 제공해 주셔서 감사합니다! 1000000 개의 무작위 정수 포인트를 가진 빠른 테스트 케이스를 설정하고 실행할 수있는 벤치 마크를했습니다 (미안하지만, 지금은 numpy를 업그레이드 할 수 없습니다).
Mine: 4.078 secs
mtrw: 7.046 secs
unutbu: 0.453 secs
아, 나는 문서에서 lexsort를 보았지만이 문제에 어떻게 적용되는지 알 수 없었습니다. 감사! – perimosocordiae
예, 종종 문서를 이해하는 데 어려움이 있습니다. 예는 훨씬 더 밝아지는 경향이 있습니다. 문제는 예를 가지고 놀고 나면 문서를 다시 읽고 문서가 완벽하게 명확하다는 것을 알 수 있습니다. :-) – unutbu
이것은 배열의 복사본을 만들고 있습니까? – g33kz0r