Program/Python

numpy를 이용한 연속적인 중복값 제거

Kaen2891 2021. 1. 22. 21:34
728x90

입력 가정

 

a = [1, 1, 2, 2, 2, 3, 3, 3, 1, 3, 4, 3, 3, 2, 2, 0] 
b = [2, 2, 3, 3, 4, 4, 5, 1, 1, 1, 2, 2, 5, 5, 7, 3, 0]

 

위와 같은 값이 있을 때, 전체 array에서 중복되는 값이 아닌 [1, 1] ==> [1] 로 만들고 싶다면 아래와 같이 하면 됨

import numpy as np


def del_over(array):
    
    return array[array != np.r_[array[1:], None]]

a = [1, 1, 2, 2, 2, 3, 3, 3, 1, 3, 4, 3, 3, 2, 2, 0]
a = np.asarray(a)
b = [2, 2, 3, 3, 4, 4, 5, 1, 1, 1, 2, 2, 5, 5, 7, 3, 0]
b = np.asarray(b)

print('origin input a = ', a) # origin input
a_a = del_over(a)
print('modified input a = ', a_a) # modified

print('origin input b = ', b) # origin input
b_b = del_over(b)
print('modified input b = ', b_b) # modified


 

결과 화면

 

728x90