4. Numpy 기본 : 배열과 벡터 연산
서론
- Numpy는 Numerical Python의 줄임말, 파이썬에서 산술 계산을 위한 가장 중요한 필수 패키지 중 하나
- Numpy기능
- 효율적인 다차원 배열인 ndarray는 빠른 배열 계산과 유연한 브로드 캐스팅 기능 제공
- 반복문 필요 없이 전체 배열을 빠르게 계산할 수 있는 표준 수학 함수
- 선형대수, 난수 생성기, 푸리에 변환 기능
- Numpy는 내부적으로 데이터를 다른 내장 파이썬 객체와 구분된 연속된 메모리 블록에 저장
- Numpy의 각종 알고리즘은 모두 C로 작성되어 타입 검사나 다른 오버헤드 없이 메모리를 직접 조작할 수 있음
4.1 Numpy ndarray : 다차원 배열 객체
- ndarray라고 하는 N차원 배열 객체는 파이썬에서 사용할 수 있는 대규모 데이터 집합을 담을 수 있는 빠르고 유연한 자료구조
arr1.shape # 차원의 크기 알려줌 oufpt :(2,3)
arr1.dtype # 자료형 알려줌 out : dtype('float64')
- np.array는 새로운 배열을 생성하기 위한 여러 함수를 가지고 있음
np.zeros(5)
# out : array([0, 0, 0, 0 ,0])
np.arange(5) # arange는 파이썬의range
# out : array([0,1,2,3,4])
팬시 색인
- 정수 배열을 사용한 색인을 설명하기 위해 Numpy에서 차용한 단어
- 팬시 색인은 슬라이싱과는 달리 선택된 데이터를 새로운 배열로 복사
import numpy as np
arr = np.empty((4,2))
arr
#out =======================
array([[9.88131292e-324, 0.00000000e+000],
[4.67586466e-310, 3.60739284e-313],
[2.05833592e-312, 4.67586466e-310],
[0.00000000e+000, 0.00000000e+000]])
# ===========================
arr[[3, 0 ,1 ,2]]
#out =======================
array([[0.00000000e+000, 0.00000000e+000],
[9.88131292e-324, 0.00000000e+000],
[4.67586466e-310, 3.60739284e-313],
[2.05833592e-312, 4.67586466e-310]])
# ===========================
4.2 유니버설 함수
- ndarray 안에 있는 데이터 원소별로 연산을 수행하는 함수
- 하나 이상의 스칼라 값을 받아서 하나 이상의 스칼라 결괏값을 변화하는 간단한 함수를 고속으로 수행할 수 있는 벡터화된 래퍼 함수
- sqrt나 exp 같은 함수들은 단항 유니버설 함수
- add나 maximum처럼 2개의 인자를 취해서 단일 배열을 반환하는 함수는 이항 유니버설 함수
import numpy as np
arr = np.arange(5)
arr
#out =======================
array([0, 1, 2, 3, 4])
#out =======================
np.sqrt(arr)
#out =======================
array([0. , 1. , 1.41421356, 1.73205081, 2. ])
#out =======================
단항 유니버설 함수 예시
- abs, fabs : 각 원소의 절댓값을 구한다. 복소수가 아닌 경우에는 빠른 연산을 위해서 fabs사용
- sqrt : 각 원소의 제곱근을 계산한다
- square : 각 원소의 제곱을 계산
- exp : 각 원소에서 지수 e^x를 계산한다
- isnan : 각 원소가 숫자가 아닌지를 나타내는 불리언 배열을 반환한다
이항 유니버설 함수 예시
- add : 두 배열에서 같은 위치의 원소끼리 더한다
- substract : 첫 번째 배열의 원소에서 두 번째 배열의 원소를 뺸다
4.3 배열을 이요한 배열 지향 프로그래밍
- Numpy 배열 연산을 사용해서 반복문을 명시적으로 제거하는 기법인 벡터화로, 파이썬 연산에 비해 2~3에서 많게는 수백 배 까지 바른 산술 연산을 할 수 있음
예시
- np.where
- np.sum(arr), arr.sum()
- np.unique(arr)
4.4 배열 데이터의 파일 입출력
- Numpy는 디스크에서 텍스트나 바이너리 형식의 데이터를 불러오거나 저장할 수 있음
4.5 선형 대수
- 매트랩 같은 언어와 다르게 두 개의 2차원 배열을 * 연산자로 곱하면 행렬 곱셈이 아니라 대응하는 각각의 원소의 곱을 계산
- 행렬 곱셈음 배열 메서드이자 numpy 네임스페이스 안에 있는 dot 함수 이용
- numpy.linalg는 행렬의 분할과 역행렬, 행렬식과 같은 것들을 포함
'Study > Python for Data Analysis - 한빛' 카테고리의 다른 글
[Book]Python for Data Analysis[END] (0) | 2022.01.24 |
---|---|
[Book]3. 내장 자료구조, 함수, 파일 (0) | 2022.01.21 |
[Book]2. 파이썬 언어의 기본, Ipython,주피터 노트북 (0) | 2022.01.20 |
[Book] 1. 시작하기 전에 (0) | 2022.01.17 |