다음과 같은 2D numpy 배열이 있습니다.
[5, 0],
[3, 1],
[7, 0],
[2, 1]
이제이 코드로 정렬 된 1 열을 얻었습니다.
sorted = array[np.argsort(array[:, 1])]
다음을 제공합니다.
[5, 0],
[7, 0],
[3, 1],
[2, 1]
이제 다른 열로 다시 정렬하고 싶습니다.
[5, 0],
[7, 0],
[2, 1],
[3, 1]
하지만 정렬 방법을 알 수 없습니다 (배열이이 4 개 항목보다 훨씬 큽니다)
Numpy에는 열을 기준으로 하위 정렬하는 기능이 포함되어 있습니다 lexsort
. 아래 문제에 대한 pandas 버전과의 비교 :
arr = [
[5, 0],
[3, 1],
[7, 0],
[2, 1]
]
df = pd.DataFrame(data=arr).sort_values([1,0])
arr_sorted = df.to_numpy()
비교 :
idx = np.lexsort((arr[:,0], arr[:,1]))
arr_sorted = arr[idx]
산출:
array([[5, 0],
[7, 0],
[2, 1],
[3, 1]])
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다