inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[개정판] 파이썬 머신러닝 완벽 가이드

넘파이 ndarray의 sort와 argsort

sort()[::-1] 관련

251

freedom07

작성한 질문수 104

3

선생님 ~ 안녕하세요 

sort_array1_desc  = np.sort(org_array)[::-1] 해서

sort_array1_desc 를 보면 내림차순으로 잘 작동하는데..

그냥 org_array.sort()[::-1] 이렇게 해줄 때에는 오류가 나네요..ㅠ 

내림차순일때는  sort_array1_desc  = np.sort(org_array)[::-1]  이런식으로만 작성해야 하나요..??

머신러닝 배워볼래요? 통계 python

답변 2

2

권 철민

안녕하십니까,

sort()가 늘 파이썬, 넘파이에서 헷갈리는 부분이 있습니다. 대표적으로 sort()를 호출해서 반환이 될 때가 있고, 호출한 객체에 그대로 적용하는 부분이 있습니다.

np.sort(array)와 같이 numpy 의 sort()함수를 호출하게 되면 인자로 입력된 array를 복사해서 정렬해서 새로운 array를 반환해 줍니다. 즉 new_array =  np.sort(org_array) 를 하게 되면 org_array 를 복사해서 이 값을 정렬한 후에 반환해 줍니다. 그래서 org_array자체는 정렬이 된 값으로 변하지 않지만 new_array는 org_array가 정렬된 새로운 array가 됩니다.

이와 유사하게 org_array.sort()와 같이 원본 array의 sort() 메소드를 호출하게 되면 원본 array의 값을 복사하지 않고 바로 sort를 적용합니다. 즉 원본 array의 값을 변화 시키게 됩니다. 그리고 반환은 하지 않습니다(결국 None값을 반환합니다). 때문에 org_array.sort()가 반환하는 값은 None이고 여기에 [::-1]을 적용하면 None값으로 인해서 오류가 발생합니다.

만약 원본 array의 내림차순 sort를 바로 적용하려면 org_array[::-1].sort() 과 같이 하면 됩니다.

감사합니다.

0

freedom07

아하..그렇군요..! 매번 상세하게 답변해주시고.. 이해까지 너무 잘되게 설명해주셔서..매번 감동입니다..선생님 너무너무 감사합니다..ㅠㅠ!!

안녕하세요 열심히 수강중인 학생입니다

0

59

2

정수 인덱싱

0

67

2

넘파이 오류

0

83

2

11강 numpy의 axis 축 질문 드립니다.

0

84

2

Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.

0

76

2

Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.

0

68

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

74

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

62

2

5강 강의 오류가 있어요.

0

82

1

실무에서 LTV 관련 모델 선택 질문입니다!

0

71

2

14강 강의 듣는중에 궁금한게 있어서 질문합니다~

0

68

3

파이썬 다운그레이 후 사이킷런 재설치

0

115

2

좋은 강의 감사합니다.

0

71

2

scoring 함수 음수값

0

66

2

6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?

0

98

2

분류 평가 정확도 예측

0

75

2

안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.

0

97

1

카카오톡 채널 있나요

0

105

1

혹시 강의에서 사용하시는 ppt 받을 수 있는건가요

0

187

2

pca 스케일링 관련하여 질문드립니다.

0

100

2

주피터 대신 구글 코랩

0

170

2

강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?

0

145

2

실루엣 스코어..

0

83

2

float64 null 값 처리 방법

0

101

2