본문 바로가기

코딩/머신러닝&데이터 분석 강의

[머신러닝 인강] 8-2주차: numpy 모듈과 ndarray 이해하기

<8-2주차 수강 클립>

03. 데이터 처리를 위한 Python (Numpy)

01. numpy 모듈 & ndarray 이해하기

02. ndarray 데이터 생성하기 (numpy 모듈 함수 이용)

03. ndarray 데이터 생성하기 (random 서브 모듈 함수 이용)

 

 


이번 주차는 데이터 처리에 사용되는 모듈인

numpy에 대해 배워보는 그 첫 시간이었네요!

>>수강 인증샷<<

 


 

01. numpy 모듈 & ndarray 이해하기

 

import numpy as np
import matplotlib.pyplot as plt

: as 키워드로 numpy대신 np로, matplotlib.pyplot 대신 plt로 사용 가능

: pyplot: 그래프 그릴 수 있는 툴

 

-ndarray란?

n-dimension array = 즉 n차원 array 라는 의미

 


 

02. ndarray 데이터 생성하기 (numpy 모듈 함수 이용)

 

- np.array 함수로 생성하기

 

x = np.array([1, 2, 3, 4])

y = np.array([[2, 3, 4],
              [1, 2, 5]]) #2행 3열 (행렬)

type(y) #<class 'numpy.ndarray'>

: np.array 함수로 생성하기

 

np.arange(10)

np.arange(1, 10) #[1, 10)

np.arange(1, 10, 2)

: np.arange 함수로 생성하기 (python의 range 함수와 100% 동일)

 

np.ones((4, 5))

np.zeros((2, 3, 8)) #3차원

: np.ones, np.zeros 함수로 생성하기 (모든 원소가 1, 0)

 

np.empty((3, 4)) #값이 초기화되지 x

np.full((3, 4), 8) #n행 m열에 채우고자하는 값까지 넘겨주기

: np.empty, np.full 함수로 생성하기 (empty-초기화 되지 않은 쓰레기값, full-넘겨준 값으로 채움)

 

np.eye(5)

: np.eye 함수로 생성하기 (단위행렬=항등행렬 생성_주대각 성분의 값이 1, 나머지 성분이 0인 정사각행렬이자 대각행렬)

 

np.linspace(1, 10, 3) #1, 10: 시작, 끝 / 3: 나누고자 하는 수 (1, 10을 포함해서 3등분, 간격이 같아야 함)

: np.linspace 함수로 생성하기 (균일한 간격을 갖도록 생성)

 

x = np.arange(1, 16)
print(x)

x.shape #tuple로 표현 (15, )

: np.reshape 함수 활용 (ndarray의 형태, 차원을 바꾸기 위해 사용_원소 개수가 동일해야 함!)

 


 

03. ndarray 데이터 생성하기 (random 서브 모듈 함수 이용)

 

np.random.rand(2, 3) #2행 3열의 행렬, 성분은 [0, 1)의 랜덤한 값

: rand 함수 (0, 1 사이의 분포로 랜덤한 ndarray 생성)

 

#3차원 텐서 _ 4행 2열짜리 행렬이 3개 만들어진다 생각!
np.random.randn(3, 4, 2) #정규분포에서 샘플링 한 값 (음수 값을 가질 수도 있음)

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

 

np.random.randint(1, 100, size=(3, 5)) #(low, high, size, ...)

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

 

np.random.seed(100) #입력값: 정수

np.random.randn(3, 4) #seed함수 호출 후 rand(n)호출할 경우 동일한 랜덤 결과 얻어짐 (seed함수 입력값이 동일하다면)

: seed 함수 (랜덤한 값을 동일하게 다시 생성하고자 할 때 사용 (고정된 랜덤)

 

#param1이 정수인 경우->np.arange로 ndarray 생성
np.random.choice(100, size=(3, 4))

#param1이 ndarray인 경우
x = np.array([1, 2, 3, 1.5, 2.6, 4.9])
np.random.choice(x, size=(2, 2)) #랜덤으로 골라 2, 2로 만듦

: choice 함수 (주어진 1차원 narray로부터 랜덤으로 샘플링 / default로 중복 허용, replace=False면 중복x)

 

np.random.uniform(1.0, 3.0, size=(4, 5)) #low~high 사이의 uniform 분포에서 랜덤으로 샘플링
np.random.normal(size=(3, 4)) #평균0, 표준편차1인 정규분포
np.random.randn(3, 4) #동일

: 확률분포에 따른 ndarray 생성 (uniform, normal etc...)

 


 

강의 링크: https://bit.ly/3cB3C8y

반응형