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는 다차원 배열의 축을 의미합니다.
기준점을 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 의 기본 문법들을 정리해 보았습니다.
더욱 자세한 내용은 데이터 사이언스 스쿨을 참고하시면 많은 정보를 얻으 실 수 있을것 같습니다.
[참고]
'강의자료 > 머신러닝' 카테고리의 다른 글
[딥러닝파이썬] 02-1.파이썬의 Pandas를 다뤄 보자. (9) | 2022.05.03 |
---|---|
[딥러닝파이썬] 01-4.파이썬의 numpy를 다뤄 보자. (5) | 2022.04.25 |
[딥러닝파이썬] 01-2.파이썬의 numpy를 다뤄 보자. (8) | 2022.04.08 |
[딥러닝파이썬] 01-1.파이썬의 numpy를 다뤄 보자 (10) | 2022.04.01 |
[딥러닝파이썬]문자열의 유사성 판단하기 (6) | 2022.03.28 |