4장. 넘파이 기초
4.1 넘파이 시작하기
4.1.1 넘파이 배열
넘파이 배열은 균질한 데이터로 이루어진 N차원 배열이다.
여기서 균질하다의 의미는 배열의 모든 요소가 같은 데이터 타입이라는 의미이다.
리스트로 배열을 만들면 1차원 배열이, 중첩된 리스트로 배열을 만들면 2차원 배열이 만들어진다.
4.1.2 벡터화와 브로드캐스팅
- 벡터화 - 스칼라 값과 넘파이 배열을 합산할 때 넘파이는 각 요소 별로 동작한다.
- 브로드캐스팅 - 배열 사이의 연산을 할 때 두 배열의 형태가 다르면, 가능한 경우 넘파이는 자동으로 작은 쪽의 배열을 확장해 큰 배열과 같은 모양으로 맞춘다.
Refer 요소 별 곱셈: *
, 행렬의 곱셈: @
용어에 겁먹지 마라. 엑셀로 우리는 매일 벡터화와 브로드캐스팅 방법으로 계산을 하고 있다.
4.1.3 범용 함수
넘파이 배열의 요소 전체를 대상으로 동작하는 함수
범용 함수가 없다면, 아래와 같이 계산해야 한다.
# list of list: 2차원 배열 - 행렬로 생각하자.
array2 = np.array([[1., 2., 3.], [4., 5., 6.]])
np.array([[math.sqrt(i) for i in row] for row in array2])
이를 간단히 범용 함수를 통해
np.sqrt(array2)
4.2 배열 생성과 조작
4.2.1 배열 요소 접근과 설정
중첩된 리스트에서 요소를 택할 때는 인덱스 체인을 사용해서 접근하자.
4.2.2 유용한 배열 생성자
np.arange()
와reshape()
같이 쓰면 빠르게 배열을 만들 수 있다.np.random.randn()
을 이용하여 의사 난수의 정규 분포를 얻을 수 있다.- 그 외,
np.ones()
,np.zeros()
,np.eye()
와 같은 생성자가 있다.
4.2.3 뷰와 사본
넘파이의 배열을 슬라이스하면 뷰가 반환되는데, 뷰의 값을 바꾸면 원래 배열의 값 역시 바뀐다.
원치 않으면 copy()
메서드로 사본을 만들어 작업하라.
4.3 요약
Go to Further: pandas
1) 넘파이 배열의 원소들은 모두 같은 데이터 타입이 들어 있다. - 하지만, 실세계 데이터는 그렇지 않고, 이는 연산할 수 없다는 문제가 된다.
2) 각 열과 행이 무엇을 가리키는 지 인덱스로만 알 수 있다. 데이터 분석이 힘들다.
그래서 판다스를 쓰자.
'Prev Contents > Automation tools' 카테고리의 다른 글
[엑셀이 편해지는 파이썬] 6장. 판다스와 시계열 분석 (175~193p) (0) | 2022.08.18 |
---|---|
[엑셀이 편해지는 파이썬] 5장. 판다스와 데이터 분석 (123~173p) (0) | 2022.08.16 |
[엑셀이 편해지는 파이썬] 3장. 파이썬 시작하기 (71~110p) (0) | 2022.08.15 |
[엑셀이 편해지는 파이썬] 2장. 개발 환경 (43~69p) (0) | 2022.08.15 |
[엑셀이 편해지는 파이썬] 1장. 왜 엑셀에 파이썬을 써야할까? (23~41p) (0) | 2022.08.14 |