카테고리 없음

Python 에서 배열간 중복 원소 찾기 (ismember)

쿠키아버님 2022. 10. 13. 16:08

배열간에 중복된 원소를 찾는 ismember 함수는 MATLAB 뿐만 아니라 python 에서도 제공된다.

 

pip install ismember

 

 

from ismember import ismember

a = [1,100, 10, 1000]
b = [1, 2, 3, 10]

boo, idx = ismember(a, b)

boo
>> array([ True, False,  True, False])


idx
>> array([0, 3], dtype=int64)

MATLAB과는 반대로, 두번째 인수인 b의 원소를 검사하여 중복된 원소의 위치와 원소값을 반환해준다.

 

MATLAB에서 기본적으로 다차원 행렬에 대해서도 함수 기능이 적용된 것과는 달리

 

python에서는 1차원 배열에 한해서만 되는 것 같다.

 

여러 차원의 열이 있는 경우 str로 변환>> concat을 한 후 ismember를 적용하는 트릭을 사용해야 할 듯 하다.

 

공모전 마감 직전에 제출용 데이터와 산출 데이터의 길이가 같지 않아서 (산출 데이터에 중복된 값이 존재하여)

 

파이썬으로 부랴부랴 만들었다.