본문 바로가기
Studying/Machine Learning

[머신러닝] 파이썬 Numpy - Numpy 모듈 기본 및 ndarray 이해

by giem 2022. 6. 15.
반응형

기본적으로 배열 연산에는 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에서 데이터를 다룰 때

 

자주 쓰이는 기능들을 알아볼 것이다.

반응형

댓글