강의자료/머신러닝

[딥러닝파이썬] 01-3.파이썬의 numpy를 다뤄 보자.

파아란 기쁨 2022. 4. 18. 08:58
diag 

- diag : 대각선의 값을 추출

import numpy as np
arr=np.arange(1,10).reshape(3,3)
print(arr)
print(np.diag(arr))

대각선의 1,5,9 만 추출됨

k 값으로 시작위치를 지정할 수 있음

import numpy as np
arr=np.arange(1,10).reshape(3,3)
print(arr)
print(np.diag(arr,k=1))

 

 

random 샘플

- np.random.uniform(low,high,size) : 균등 분포로부터 무작위 표본추출

import numpy as np
arr = np.random.uniform(low=0.0, high=10.0, size=10)
print(arr)

- np.random.normal(loc,scale,size) : 정규분포로부터 무작위 표본추출 loc(평균),scale(표준편차)

import numpy as np
arr = np.random.normal(0, 3, size=10)
print(arr)

평균이 0 이고 표준편차가 3인 랜덤표본 10개 추출 

numpy의 sum
import numpy as np
arr = np.arange(0,3*3*3).reshape(3,3,3)
print(arr)
print(arr.sum()) #배열의 모든합

np.sum() 으로 배열의 합계를 구하는 방법을 살펴 보았습니다.

import numpy as np
arr = np.arange(0,3*3*3).reshape(3,3,3)
print(arr)
print(arr.sum(axis=0))
print(arr.sum(axis=1))

여기서 axis 의 값을 변경함으로 값이 완전히 달라 지는 것을 확인 할 수가 있는데요.

axis는 다차원 배열의 축을 의미합니다.

출처: http://taewan.kim/post/numpy_sum_axis/

 

기준점을 axis=0 일때는 위의 표에서와 같이 0+9+18 이 [0][0] 위치의 값이 되고

기준점을 axis=1 일때는 위의 표에서와 같이 0+3+6 이 [0][0] 위치의 값이 되고

기준점을 axis = 2 일때는 위의 표에서와 같이 0+1+2 가 [0][0] 위치의 값이 되는 형태로 

3차원의 데이터를 한차원 줄여 주면서 sum을 진행하게 됩니다.

이렇게 axis 로 방향을 지정하는 부분에 대해 이해를 해 주시면 도움이 될것 같네요.

이러한 axis 는 mean(평균),std(표준편차) 등과 같은 부분에서도 같이 사용됩니다.

넘파이 연결자

numpy array 를 합치는(붙이는) 함수

import numpy as np
a = np.array([[1,2,3],[4,5,6]])
b = np.array([[7,8,9],[10,11,12]])
c = np.vstack((a,b))
d = np.hstack((a,b))
print(c)
print(d)

- vstack :  세로 방향으로 합치는 함수

- hstack : 가로 방향으로 합치는 함수

import numpy as np
a = np.array([[1,2,3],[4,5,6]])
b = np.array([[7,8,9],[10,11,12]])
c = np.concatenate((a,b),axis=0)
d = np.concatenate((a,b),axis=1)
print(c)
print(d)

-concatenate : axis=0,axis=1 과 같이 축을 기준으로 합쳐진다.

넘파이 연산자

- Element-wise operations

import numpy as np
a = np.array([[1,2,3],[4,5,6]])
b = np.array([[7,8,9],[10,11,12]])
c = a + b
d = a - b
e = a * b
f = a / b
print(c)
print(d)
print(e)
print(f)

위와 같이 넘파이 사칙연산이 가능합니다. 이 때 같은 위치끼리 연산이 됩니다.

단, 모양이 같은 경우에 사칙연산이 가능합니다.

이러한 연산 방법을 Element-wise operations 라고 합니다.

- Dot product

: Matric의 곱셈연산으로 dot 함수를 사용합니다.

행렬 연산은 위와 같이 n*m 행렬과 m*n 행렬의 곱은 n * n 형태의 행렬이 생성됩니다.

import numpy as np
a = np.array([[1,2],[3,4],[5,6]])
b = np.array([[7,8,9],[10,11,12]])
print(a.dot(b))

- transpose : 전치행렬

import numpy as np
a = np.array([[1,2],[3,4],[5,6]])

print(a.transpose())

- broadcasting : 넘파이 배열과 스칼라 간의 연산 외에도 모양이 다른 경우도 연산이 가능

import numpy as np
a = np.array([[1,2],[3,4],[5,6]])

print(a + 3)
print(a * 3)

import numpy as np
a = np.array([[1,2],[3,4],[5,6]])
b = np.array([1,2])
print(a*b)


이 문서는 학생들과 함께 딥러닝 공부를 하기 위해 만든 문서이며~

딥러닝 공부 전에 Numpy와 Pandas 의 기본을 알고 머신러닝을 공부하면 대부분의 머신러닝 소스코드들을 바라보는데 이해의 폭이 넓어질 것 같아서 이론 후 실습 전에 Numpy와 Pandas 의 기본 문법들을 정리해 보았습니다.

 

 

더욱 자세한 내용은 데이터 사이언스 스쿨을 참고하시면 많은 정보를 얻으 실 수 있을것 같습니다.

 

[참고]

https://datascienceschool.net/intro.html

사업자 정보 표시
원당컴퓨터학원 | 기희경 | 인천 서구 당하동 1028-2 장원프라자 502호 | 사업자 등록번호 : 301-96-83080 | TEL : 032-565-5497 | Mail : icon001@naver.com | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기