공부/Python
[numpy] np.isin(), np.where() index 찾아보기
잠수함토끼
2020. 4. 28. 17:52
np.isin()
내가 찾는게 있는지 여부를 각 index 위치에 True, False 형태로 알려줌
1,4,6,10이 포함되어 있는지를 찾고 싶을때 사용한다.
from numpy import ndarray
import numpy as np
datas = np.asarray([1,2,3,4,5,6,7])
# 이 값들의 포함 여부를 알려달라.
iwantit = np.asarray([1,4,6,10])
# 해당 ndarray의 index 위치에 포함 여부가 표시된다.
print(np.isin(datas, iwantit))
#[ True False False True False True False]
np.where()
내가 원하는 조건이 맞으면 index 위치를 알려준다.
포함 여부를 index로 치환해보자.
# 해당 ndarray의 index를 표기한다.
# (array([0, 3, 5], dtype=int64),)
print(np.where(np.isin(datas, iwantit) == True))
# 0번째에 우리가 원하는 index list가 있다.
# 그래서 [0]를 사용한다.
indexlist = np.where(np.isin(datas, iwantit) == True)[0]
for item in indexlist:
print(item)