반응형
기본적으로 배열 연산에는 numpy가 자주 사용되어서 numpy 모듈을 짚고 넘어가려 한다.
numpy 라이브러리 불러오기
우선 numpy가 깔려 있지 않다면
pip install numpy로 numpy 모듈을 설치해준다.
import numpy as np # numpy를 import하고 np로 numpy모듈을 사용하기로 함
import pprint #필수는 아니지만 예쁘게 프린트하도록
pp = pprint.PrettyPrinter()
print = pp.pprint #이제 프린트 대신 pp.pprint를 사용하게 됨
배열 초기화
초기화는 다음과 같이 할 수 있다.
0d-array - 스칼라 값
# 0-D array => Scalar
x = np.array([1])
print(x.shape) #(1,)
print(x) #array([1])
1d-array - 벡터 값
# 1-D array => Vector
x = np.array([1, 2, 3])
print(x.shape) #(3,)
print(x) #array([1, 2, 3])
2d-array - matrix 값
# 2-D array => Matrix
x = np.array([[1,2,3],[4,5,6]])
print(x.shape) #(2, 3)
print(x) #array([[1, 2, 3], [4, 5, 6]])
3d-array - tensor 값
# 3-D array => Tensor
x = np.array( [ [ [1,2], [3,4] ], [ [5,6], [7,8] ] ])
print(x.shape) #(2, 2, 2)
print(x) #array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
numpy의 attributes
x.ndim # 3 # ndim은 축(axis == dimensions)의 개수를 나타낸다.
x.shape # (2,2,2) # shape은 각 축의 길이을 알려 준다.
x.size # 8 # size는 원소의 총 개수를 나타낸다.
numpy의 functions
a= np.zeros((2,3)) # array([[0., 0., 0.], [0., 0., 0.]])
# zeros는 인자의 shape를 갖는 0으로 채워진 배열을 반환한다.
a = np.ones((2,3)) # array([[1., 1., 1.], [1., 1., 1.]])
# ones는 인자의 shape를 갖는 1로 채워진 배열을 반환한다.
a = np.full((2,3), 10) #array([[10, 10, 10],[10, 10, 10]])
# full은 첫번째 인자의 shape를 갖는 2번째 인자로 채워진 배열을 반환한다.
a = np.eye(3) #array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]])
# eye는 주어진 인자 n x n의 2D identity Matrix(항등행렬)를 반환한다.
a = np.arange(10) #array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
# arange는 python의 range()와 유사하지만 numpy array를 반환한다.
# range와 같이 start, stop, step을 인자로 넘길 수 있다.
a = np.random.random((1, 10))
# np.random.random은 인자의 shape을 가지며
# 0~1 사이 값을 가진 random number들로 채워진 배열을 생성한다.
# uniform distribution에서 뽑아서 균등하게 뽑힌다.
a = np.random.randn(1, 10)
# np.random.randn은 인자의 shape을 가지며
# 표준 정규분포를 따르는 random number들로 채워진 배열을 생성한다.
# 따라서 0.5근처의 값이 많이 뽑힌다.
여기까지 numpy의 기본적인 속성과 함수를 알아보았다.
다음 포스팅에서는 numpy의 수학적인 기능들과
Machine Learning에서 데이터를 다룰 때
자주 쓰이는 기능들을 알아볼 것이다.
반응형
'Studying > Machine Learning' 카테고리의 다른 글
[머신러닝] Linear regression(선형 회귀) 구현 (0) | 2022.07.05 |
---|---|
[머신러닝] 파이썬 Numpy 연산 - Numpy dot, matmul, transpose (1) | 2022.06.25 |
[머신러닝] 파이썬 Numpy - Numpy의 유용한 기능들 (0) | 2022.06.23 |
[머신러닝] 파이썬 Numpy - Numpy indexing과 slicing (0) | 2022.06.21 |
[머신러닝] 파이썬 Numpy - Numpy 모듈의 수학적 기능들 (0) | 2022.06.20 |
댓글