Search

Python 13. NumPy의 기초 (2)

Created at
2019/03/19
Updated at
2021/01/20
Tags
Keywords
NumPy
3 more properties
목차
import numpy as np
Python
복사

1. array에 데이터 넣기

1.1 arange

range와 사용 방법이 같음
하지만 range보다 속도가 빠름

1.2 linspace, logspace

1.3 random

array에 랜덤하게 수를 발생시켜 넣어주는 방법을 알아보자.
seed: 랜덤변수의 설정값
seed 값을 동일하게 주면 같은 동일한 결과를 반복해서 얻을 수 있음
rand: 균등분포(uniform)로 난수를 발생시킴
randn: 정규분포(Gaussian)로 난수를 발생시킴
randint: 정수로 난수를 발생시킴 (균등분포)
suffle: 행렬 데이터를 섞어줌
choice: 특정 범위의 숫자를 선택해줌 (확률 설정이 가능)

(1) seed, rand, randn

np.random.rand(size)
np.random.randn(size)

(2) randint

np.random.randint(from, to, size)

(3) shuffle

데이터의 순서를 바꿀수 있음
행의 순서만 바뀜 (행 안의 데이터는 바뀌지 않음)
데이터를 다 바꾸려면? 1열로 reshape 후 shuffle, 그 후 다시 reshape

(4) choice

numpy.random.choice(a, size=None, replace=True, p=None)
a: 1-D array-like or int
size: int or tuple of int, optional
replace: boolen, optional (False: equivalent to permutation - 비복원추출!)
p: 1-D array-like, optional (입력하지 않으면 a에 대해 uniform distribution)

2. unique

행렬 데이터에서 유일값(중복없는 list)과 유일값의 개수를 확인할 수 있음

3. stack & concatenate

3.1 stack

행렬을 쌓는 것과 같이 합치는 방법
numpy.stack(arrays, axis=0, out=None)
arrays: sequence of array_like (각 array는 같은 shape여야 함!)
axis: The axis in the result array along which the input arrays are stacked (몇번째 차원의 방향으로 쌓는가)

(1) 1차원 행렬의 stack

(2) 2차원 행렬의 stack

3.2 concatenate (결합)

세로 결합(axis=0, default)은 열의 갯수가 같아야 함
가로 결합(axis=1)은 행의 갯수가 같아야 함

3.3 column/row 결합

c_[array1, array2]: column 결합
r_[array1, array2]: row 결합 → 결과가 1행 행렬이 됨
stack이나 concatenate이 더 빠름

4. split

4.1 vsplit / hsplit

행렬을 수직, 수평으로 나눈다

5. sort

참고자료
패스트캠퍼스, ⟪데이터사이언스스쿨 8기⟫ 수업자료