본문 바로가기

Python/Numpy

numpy 모듈 & ndarray 이해하기

728x90
반응형

- 성능 : 파이썬 리스트보다 빠름
- 메모리 사이즈 : 파이썬 리스트보다 적은 메모리 사용
- 빌트인 함수 : 선형대수 , 통계관련 여러 함수 내장

ndarray 는 C 언어로 구성되어 있어서 속도가 빠르다
Vectorization : 한번에 한 연산을 하는게 아니라 , 전체의 데이터를 한묶음의 데이터로 처리해버림
ㄴ ( python 는 한번에 한개씩 ( for , while 하나씩 하나씩 .. )

 

다양한 방법으로 ndarray 생성하기

np.arange 함수로 생성하기

np.ones, np.zeros로 생성하기

np.empty, np.full로 생성하기

np.eye로 생성하기

np.linspace로 생성하기

reshape 함수 활용
ndarray의 형태, 차원을 바꾸기 위해 사용

 

이건 되는데

이건 안됨

random 서브모듈 함수를 통해 ndarray 생성하기
( 0 ~ 1 사이의 값을 랜덤으로 )

 randn함수

randn : normal distribution(정규분포)
정규분포로 샘플링된 랜덤 ndarray 생성

이런 정규분포의 모양을 가지는 함수이기 때문에 음수의 값도 가질 수 있다

randint 함수
특정 정수 사이에서 랜덤하게 샘플링

(1, 100, size = ( 3, 4,2 ))
1~99의 범위 안에서 3개의 4행 2열 로 생성

잠깐 randint 를 활용하여 로또 자동생성기를 만들어보자

 seed 함수 ( 난수 값 고정 )

다시 불러와도 같은 값인걸 알 수 있다.

choice ( 선택 )

choice
주어진 1차원 ndarray로 부터 랜덤으로 샘플링
정수가 주어진 경우, np.arange(해당숫자)로 간주

List 를 생성하고 그 안에서 난수생성

중복으로 생성된 것을 확인할수 있다

만약 중복을 허용하지 않을려고 할 땐,
" replace = False " 를 정의한다

Uniform
low ~ high 사이의 값

Normal ( 정규분포 ) = ' randn '

 

 

 

 

 

 

 

 

728x90
반응형

'Python > Numpy' 카테고리의 다른 글

Numpy _ 1  (0) 2020.09.03
넘파이 1  (0) 2020.08.31