반응형
다음과 같은 numpy 배열이 있습니다.
A = array([[1, 3, 2, 7],
[2, 4, 1, 3],
[6, 1, 2, 3]])
이 행렬의 행을 내림차순으로 정렬하고 다음과 같이 정렬 된 행렬의 인수를 가져오고 싶습니다.
As = array([[3, 1, 2, 0],
[1, 3, 0, 2],
[0, 3, 2, 1]])
다음을 수행했습니다.
import numpy
A = numpy.array([[1, 3, 2, 7], [2, 4, 1, 3], [6, 1, 2, 3]])
As = numpy.argsort(A, axis=1)
그러나 이것은 나에게 오름차순으로 정렬을 제공합니다. 또한 인터넷에서 솔루션을 찾는 데 시간을 보낸 후 정렬 순서를 반대로하는 numpy의 argsort
함수에 대한 인수가 있어야한다고 예상합니다. 하지만 분명히 그런 주장은 없습니다! 왜!?
order
라는 인수가 있습니다. 추측하여 numpy.argsort (..., order = reverse)
시도했지만 작동하지 않습니다.
여기에서 이전 질문에서 해결책을 찾았고 다음과 같이 할 수 있습니다.
import numpy
A = numpy.array([[1, 3, 2, 7], [2, 4, 1, 3], [6, 1, 2, 3]])
As = numpy.argsort(A, axis=1)
As = As[::-1]
어떤 이유로 As = As [::-1]
는 원하는 출력을 제공하지 않습니다.
글쎄요, 간단해야 할 것 같지만 뭔가 빠졌습니다.
numpy 배열을 내림차순으로 정렬하려면 어떻게해야합니까?
해결 방법
역순으로 행렬에 -1을 곱하면됩니다.
[In]: A = np.array([[1, 3, 2, 7],
[2, 4, 1, 3],
[6, 1, 2, 3]])
[In]: print( np.argsort(-A) )
[Out]: [[3 1 2 0]
[1 3 0 2]
[0 3 2 1]]
참조 페이지 https://stackoverflow.com/questions/36265930
반응형
'파이썬' 카테고리의 다른 글
파이썬 0으로 나누지 않은 경우 "로그에서 발생한 0으로 나누기" (0) | 2020.11.06 |
---|---|
파이썬 opencv python에서 이미지 주위에 테두리를 추가하는 방법 (0) | 2020.11.06 |
파이썬 단 하나의 명령문으로 Python 목록에서 여러 항목 제거 (0) | 2020.11.06 |
파이썬 bash 터미널에서 파일을 실행할 때 Matplotlib 플롯이 표시되지 않습니다. (0) | 2020.11.06 |
파이썬 pandas-열 값을 기준으로 거의 중복 된 행 병합 (0) | 2020.11.06 |
댓글