2017-12-11 2 views
0

argmin()을 사용하여 오름차순으로 배열을 정렬하는 방법은 무엇입니까? 난 단지 argmin()를 사용하여 x의 오름차순을 반환 sort_function(x)을 정의 할 경우, 예를 들어argmin()을 사용하여 배열을 정렬하는 방법

:

print(sort_function(np.array([1,6,3,7])) 

결과는 [1 3 6 7]해야한다. 여기

+0

질문 * "이'sort_function'을 어떻게 정의합니까?"*? –

+1

'argsort'가 아닌'argmin'을 사용하여 이것을하고 싶습니까? –

+0

_only using_은 무엇을 의미합니까? 당신은 어떤 종류의 algo를 취해서'x> y'를'np.argmin ((x, y))'로 대체 할 수 있습니다. 나는 그것을 계산하지 않을 걸릴까요? –

답변

5

가 빠른 O(N ** 2) 타오르는에 - 목록이 비어 때까지 목록

    1. 전화 np.argmin을 해당 인덱스
    2. 반복에있는 요소를 팝
    def sort_function(x): 
        y = list(x) 
        while y: 
         yield y.pop(np.argmin(y)) 
    
    list(sort_function(np.array([1, 6, 3, 7]))) 
    [1, 3, 6, 7] 
    
  • +1

    아! 그게 빠르다 – Dark

    +0

    이거나 단지'return [y.pop (np.argmin (y) for _ in x] ' –

    +1

    @Dark "빠르다"라고 말하면 cᴏʟᴅsᴘᴇᴇᴅ은 냉소적이다. 이것은 정렬을하는 정말 바보 같은 방법입니다. –

    관련 문제