√ Numpy 란?
- 다차원배열(ndarray)의 효과적 처리를 도와주는 라이브러리
- [[ ]] 대괄호 2개는 2차원, [[[ 3개는 3차원으로 차원
- 벡터와 행렬 선형대수 계산에 주로 사용
- 차원의 수(ndim), 차원의 모양은 shape 기능이용
- 벡터 연산이 가능해서 연산속도가 매우 빠름
√ Numpy 특징
- numpy 의 배열은 반드시 동일한 데이터 타입으로 자동 변환/저장된다.
x = [1,2,'K']
a = np. array(x)
print(a)
>>> ['1' '2' 'K']
#전체 데이터 타입을 string으로 자동으로 통일시킴
√ Numpy 필수 함수
1차원 배열 형성
x = np.array(리스트 or 튜플) ---------------<class 'numpy.ndarray'>
차원의 크기 = x.ndim
총 요소 갯수 = x.size
각 차원의 크기 = x.shape
데이터타입 = x.dtype
각 요소의 byte 수 = x.itemsize
[ Random 값 생성 ]
랜덤값 고정 = np.random.seed()
0과 1사이에서 임의의 float값 추출 = np.random.random(n)
균등분포에서n개의 표본 추출 = np.random.rand(n)
정규분포에서n개의 표본 추출 = np.random.randn(n)
최소 최대에서 n개의 표본 추출 = np.ramdom.randint(min,max,n)
지정된 리스트에서 랜덤값 추출 = np.random.choice(리스트)
기존 array의 순서가 섞임 = np.random.shuffle(array)
[ 배열 생성 함수 ]
np.zeros(shape) > [0 0 0 0 ...]
np.ones(shape) > [1 1 1 1 ...]
np.empty(shape) > 임의의 float64 값으로 채움
np.full(shape, n개) > 지정된 n개 개수만큼 값으로 채움
np.linspace(start,stop,n) > start과 stop 사이의 값 n개 생성
[ 배열 삭제/추가/삽입 ]
np.delete(array, 삭제 index)
np.append(array, 추가value, 추가 위치index)
np.insert(array, 추가 위치index, 삽입value)
[ 배열 변환 ]
np.arrange(n).reshape((행,열)) > 행*열의 모양으로 변환해라
이렇게 reshape한 배열을 순회하고 싶다면
for x in np.nditer(array): print(x)
: 이런식으로 nditer을 사용 가능
[ 데이터 타입 변환 ]
x = np.array(리스트 or 튜플)
x.astype(타입)
예시) np.int64, np.string_, np.str_, np.float64 등
[ 벡터연산 (Vectorized Operation) ]
▷ 파이썬과 달리, 요소간의 (사칙)연산을 지원한다는 차이점 존재
arr1 = np.array([1,2,3])
arr2 = np.array([4,5,6])
arr1 + arr2 >> [5,7,9]
arr1 - arr2 >> [-3,-3,-3]
arr1 * arr2 >> [4,10,18]
arr1 / arr2 >> [1/4,2/5,3/6]
▷ 벡터 + 스칼라 연산에서 자동으로 스칼라가 Broadcasting되어 연산됨
k =2
arr1 + k >> [1+2, 2+2, 3+2]
arr1 -k >> [1-2, 2-2, 3-2]
위 그림처럼 배열shape가 다른 array 혹은 스칼라와 연산을 할 때 numpy에서는 자동으로 shape를 채워넣어서 계산이
된다는 거죠!
▷ 비교연산을 실행할 때도 벡터화가 가능합니다
arr1 == 0 >> [ False, False, False]
arr1 >= 0 >> [True, True, True]
arr1 >1 >> [False, True, True]
'Data Science > Pandas, Numpy' 카테고리의 다른 글
[Numpy] Flatten 기능 및 사용법 정리 (0) | 2022.09.29 |
---|---|
[Numpy] 열 Column간 순서, 위치 바꾸기 (0) | 2022.09.29 |
[Numpy] 넘파이 범용/유틸리티 함수 정리 (0) | 2022.09.28 |
[Pandas] Groupby / Count / Value_counts 차이점 정리 (0) | 2022.09.22 |
[Pandas] Reset_index, set_index 비교 (0) | 2022.09.21 |
댓글