본문 바로가기
python

numpy 워드 카운트 후 내림차순, 올림차순 정렬 (unique, argsort)

by 타닥타닥 토다토닥 부부 2023. 4. 28.
반응형

numpy 워드 카운트 후 내림차순, 올림차순 정렬 (unique, argsort)

 

패키지 불러오기

import numpy as np

 

예시 데이터 생성

sample = [
    "apple", "apple", "apple", "banana", "banana", "melon", "peach", "peach", "peach", "peach", "peach"
    ]

 

unique 값 추출 

# numpy.unique 매서드 활용
unique_value = np.unique(sample)
print(unique_value)

# out : ['apple' 'banana' 'melon' 'peach']

 

unique 값 별 카운팅 결과 도출

# return_counts=True 옵션 활용
unique, count = np.unique(sample, return_counts=True)
print(unique)
print(count)

# out : ['apple' 'banana' 'melon' 'peach']
#       [3 2 1 5]

 

오름차순 정렬

# argsort  메서드를 활용하여 워드 카운트별 오름차순 위치 반환
sort_idx = list(np.argsort(count))
print(sort_idx)

# out : [2, 1, 0, 3]


# sample 내 워드를 카운트 오름차순으로 정렬
words_sort = unique[sort_idx]
print(words_sort)

# 'melon' 개수가 가장 적고 'peach' 개수가 가장 많음
# out : ['melon' 'banana' 'apple' 'peach']

 

내림차순 정렬

 

# argsort  메서드를 활용하여 워드 카운트별 오름차순 위치 반환
sort_idx = list(np.argsort(count))
#[::-1] 슬라이싱을 통해 위치를 내림차순으로 반환
sort_idx = sort_idx[::-1]
print(sort_idx)

# out : [3, 0, 1, 2]


# sample 내 워드를 카운트 내림차순으로 정렬
words_sort = unique[sort_idx]
print(words_sort)

# 'peach' 개수가 가장 많고 'melon' 개수가 가장 적음 
# out : ['peach' 'apple' 'banana' 'melon']

 

 


코드 전체

import numpy as np

sample = [
    "apple", "apple", "apple", "banana", "banana", "melon", "peach", "peach", "peach", "peach", "peach"
    ]

# numpy.unique 매서드 활용
unique_value = np.unique(sample)
print(unique_value)

# out : ['apple' 'banana' 'melon' 'peach']

# return_counts=True 옵션 활용
unique, count = np.unique(sample, return_counts=True)
print(unique)
print(count)

# out : ['apple' 'banana' 'melon' 'peach']
#       [3 2 1 5]

# argsort  메서드를 활용하여 워드 카운트별 오름차순 위치 반환
sort_idx = list(np.argsort(count))
print(sort_idx)

# out : [2, 1, 0, 3]


# sample 내 워드를 카운트 오름차순으로 정렬
words_sort = unique[sort_idx]
print(words_sort)

# 'melon' 개수가 가장 적고 'peach' 개수가 가장 많음
# out : ['melon' 'banana' 'apple' 'peach']

# argsort  메서드를 활용하여 워드 카운트별 오름차순 위치 반환
sort_idx = list(np.argsort(count))
#[::-1] 슬라이싱을 통해 위치를 내림차순으로 반환
sort_idx = sort_idx[::-1]
print(sort_idx)

# out : [3, 0, 1, 2]


# sample 내 워드를 카운트 내림차순으로 정렬
words_sort = unique[sort_idx]
print(words_sort)

# 'peach' 개수가 가장 많고 'melon' 개수가 가장 적음 
# out : ['peach' 'apple' 'banana' 'melon']
반응형

댓글