배열의 원소들의 true / false 여부도 출력하거나, 다른 배열과 함께 사용할 수 있다.
다음과 같은 배열이 있다.
names = np.array(['con', 'muzy', 'frodo', 'ryan'])
names의 배열 중 frodo를 찾으려면 이런 형태가 된다.
names == 'frodo'
frodo가 있는 2번째 인덱스가 True로 표시된다.
만약 True인 인덱스를 찾고 싶다면 where 함수를 쓸 수 있다.
np.where(names == 'frodo')
파이썬의 index나 find 함수와 비슷한 쓰임이지만, 조건을 만족하는 인덱스가 여러개여도 첫번째로 만족하는 인덱스 하나만을 반환하는 index나 find 함수와는 달리 조건을 만족하는 모든 인덱스를 튜플 형태로 반환한다.
인덱스 여러개 선택
여러 개의 인덱스를 한꺼번에 선택할 수도 있다.
names에 frodo를 하나 더 추가해보자.
names = np.array(['con', 'muzy', 'frodo', 'ryan', 'frodo'])
frodo를 찾는다면?
names == 'frodo'
>> array([False, False, True, False, True])
2번째, 4번째 index가 True일 것이다.
랜덤으로 길이 5의 배열을 생성한 뒤,
arr = np.random.randn(5)
이 배열에서 names == 'frodo'였던 index(2, 4)의 값만을 뽑아낼 수 있다.
arr[names == 'frodo']
다차원 배열에서도 가능하다.
arr_2d = np.random.randn(5, 4)
arr_2d[names == 'frodo']
2번째 인덱스의 모든 값(배열), 4번째 인덱스의 모든 값(배열)이 출력되는 것을 볼 수 있다.
'파이썬 > numpy' 카테고리의 다른 글
Numpy 7. 팬시 색인 (0) | 2020.10.29 |
---|---|
Numpy 6. Boolean 2, Numpy 조건 연산자 (0) | 2020.10.28 |
Numpy 4. 인덱싱, 슬라이싱 (0) | 2020.10.26 |
Numpy 3. Numpy 배열의 산술연산 (0) | 2020.10.23 |
numpy 2. ndarray (0) | 2020.10.23 |