티스토리 뷰
import numpy as np
⊙ Boolean 값으로 선택하기
중복된 이름이 포함된 배열 names가 있다.
numpy.random 모듈의 .randn 함수를 사용해 임의의 표준정규분포데이터를 생성한다.
각 이름이 data 배열의 row에 대응한다고 가정하자.
names = np.array(['Bob', 'Joe', 'Will', 'Joe', 'Bob', 'Will', 'Joe'])
data = np.random.randn(7, 4)
만약 전체 row에서 'Bob'과 같은 이름을 선택하려 할 때 산술 연산과 마찬가지로 배열에 대한 비교 연산도 벡터화되므로 names를 'Bob' 문자열과 비교하면 Boolean 배열을 반환한다.
names == 'Bob'
쉽게 말해 'Bob'이면 True, 아니면 False를 반환한다는 뜻이다.
그래서 이 Boolean 배열은 색인으로 활용할 수 있다.
data[names == 'Bob']
다만 Boolean 배열의 길이는 색인하려는 축의 길이와 같아야 한다.
한편 != 연산자나 ~로 Bob이 아닌 친구들만 골라낼 수도 있을 것이다.
names != 'Bob'
data[~(names == 'Bob')]
cond = names == 'Bob'
data[~cond]
& 또는 | 과 같은 논리연산자를 사용해서 두 개 이상의 조건을 설정할 수도 있다.
mask == (names == 'Bob') | (names == 'Will')
mask
data[mask]
배열에 Boolean 색인을 적용해 데이터를 선택하면 반환되는 배열의 내용이 바뀌지 않더라도 항상 데이터 복사가 발생한다.
어쨌든 2차원 데이터에 대한 이런 연산은 pandas를 활용하는 것이 조금 더 편하다.
'공부 > Python' 카테고리의 다른 글
알고리즘 문제 풀 때 조건을 잘 읽어야 하는 이유(+공부 근황) (0) | 2022.08.07 |
---|---|
네이버 부스트코스 '모두를 위한 파이썬' 스터디 참여! (1) | 2022.07.11 |
20210121 오늘공부: Numpy 기본함수 다루기 (0) | 2021.01.21 |
파이썬 핵심함수(기본함수, 수집, 처리) #2 BeautifulSoup을 이용한 html 파싱 기본 (0) | 2020.12.21 |
20201221 오늘의 공부 (0) | 2020.12.21 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 코테공부
- 커리어코칭
- 이력서
- 이자포스터디
- 빅분기합격
- ADsP
- 빅데이터분석기사
- 깃허브
- 취업준비
- ai부트캠프
- github
- 빅분기
- 코드스테이츠
- 데이터준전문가
- todayIlearned
- 자버
- 빅분기후기
- googlecolab
- 개발자포트폴리오
- Kaggle
- Til
- 데이터분석
- data annotation
- 빅데이터
- 데이터과학
- 데이터준전문가합격후기
- Notion2Tistory
- ADsP합격후기
- 자격증
- 인공지능
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함