(numpy에는 다양한 함수가 존재하지만, 기본적으로 알아두면 좋을 부분만 정리하였습니다. 중요하지만 복잡한 개념은 추가하지 않았습니다.)
import numpy as np # 설치시 pip install numpy
# array 생성
array1 = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
print(array1, type(array))
# [0 1 2 3 4 5 6 7 8 9] <class 'numpy.ndarray'>
array2 = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
print(array2)
# [[ 1 2 3]
# [ 4 5 6]
# [ 7 8 9]
# [10 11 12]]
# 크기 확인
# array의 형태(크기)를 확인할 수 있다.
print(array1.shape)
# (10,)
print(array2.shape)
# (4, 3)
# np.zeros() 활용
np.zeros(10)
# array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
np.zeros((3,5))
# array([[0., 0., 0., 0., 0.],
# [0., 0., 0., 0., 0.],
# [0., 0., 0., 0., 0.]])
# np.ones() 활용
np.ones(9)
# array([1., 1., 1., 1., 1., 1., 1., 1., 1.])
np.ones((2,10))
# array([[1., 1., 1., 1., 1., 1., 1., 1., 1., 1.],
# [1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]])
# np.arange() 활용
np.arange(10)
# array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.arange(3,10)
# array([3, 4, 5, 6, 7, 8, 9])
# 같은 array 계산
array3 = np.array([[1., 2., 3.], [4., 5., 6.]])
array3
# array([[1., 2., 3.],
# [4., 5., 6.]])
array3 * array3
# array([[ 1., 4., 9.],
# [16., 25., 36.]])
array3 - array3
# array([[0., 0., 0.],
# [0., 0., 0.]])
1 / array3
# array([[1. , 0.5 , 0.33333333],
# [0.25 , 0.2 , 0.16666667]])
# 서로 다른 array 계산, 비교 가능
array4 = np.array([[0., 4., 1.], [7., 2., 12.]])
array4
# array([[ 0., 4., 1.],
# [ 7., 2., 12.]])
array3 + array4
# array([[ 1., 6., 4.],
# [11., 7., 18.]])
array3 < array4
# array([[False, True, False],
# [ True, False, True]])
# 1차원
array5 = np.arange(10)
array5
# array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
array5[5]
# 5
array5[5:8]
# array([5, 6, 7])
array5[5:8] = 10
array5
# array([ 0, 1, 2, 3, 4, 10, 10, 10, 8, 9])
# 2차원
array6 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array6[0]
# array([1, 2, 3])
array6[0][1]
# 2
array6[0, 1]
# 2
array8 = np.random.randn(7, 4)
# array([[-0.7005577 , 0.05233897, 0.52168583],
# [ 1.47013564, -0.26747237, -0.03893357]])
np.sum(array8)
# 1.0371967939458655
np.sum(array8, axis=1)
# array([-0.1265329, 1.1637297])
np.sum(array8, axis=0)
# array([ 0.76957794, -0.21513341, 0.48275226])
np.mean(array8)
# 0.17286613232431092
np.mean(array8, axis=0)
# array([ 0.38478897, -0.1075667 , 0.24137613])
np.std(array8)
# 0.685654975739224
np.min(array8, axis=1)
# array([-0.7005577 , -0.26747237])
# 최소값 인덱스를 반환
np.argmin(array8)
# 0
# 최대값 인덱스를 반환
np.argmax(array8,axis=0)
# array([1, 0, 0])
# 누적합
np.cumsum(array8)
# array([-0.7005577 , -0.64821874, -0.1265329 , 1.34360274, 1.07613037,
# 1.03719679])
# 누적곱
np.cumprod(array8)
# array([-7.00557700e-01, -3.66664650e-02, -1.91283752e-02, -2.81213063e-02,
# 7.52167255e-03, -2.92845581e-04])
array7 = np.random.randn(5,3)
array7
# array([[ 0.71447189, -0.21040065, 0.4031654 ],
# [ 1.23235593, -1.5653616 , 1.01183471],
# [ 0.04878855, 0.44906397, -0.58827852],
# [ 1.07690984, -1.31534702, 0.5059711 ],
# [ 0.76411248, 0.9710451 , -1.68417176]])
np.abs(array7)
# array([[0.71447189, 0.21040065, 0.4031654 ],
# [1.23235593, 1.5653616 , 1.01183471],
# [0.04878855, 0.44906397, 0.58827852],
# [1.07690984, 1.31534702, 0.5059711 ],
# [0.76411248, 0.9710451 , 1.68417176]])
np.sqrt(array7)
# array([[0.84526439, nan, 0.63495307],
# [1.11011528, nan, 1.00589995],
# [0.22088129, 0.67012235, nan],
# [1.03774266, nan, 0.71131646],
# [0.87413527, 0.98541621, nan]])
np.square(array7)
# array([[5.10470083e-01, 4.42684345e-02, 1.62542340e-01],
# [1.51870114e+00, 2.45035694e+00, 1.02380947e+00],
# [2.38032218e-03, 2.01658445e-01, 3.46071619e-01],
# [1.15973480e+00, 1.73013780e+00, 2.56006757e-01],
# [5.83867879e-01, 9.42928584e-01, 2.83643451e+00]])
np.exp(array7)
# array([[2.04310741, 0.81025955, 1.4965544 ],
# [3.42929922, 0.20901242, 2.75064301],
# [1.0499983 , 1.56684488, 0.55528237],
# [2.93559406, 0.26838117, 1.65859541],
# [2.14708794, 2.64070281, 0.18559809]])
np.log(array7)
# array([[-0.33621162, nan, -0.90840838],
# [ 0.20892773, nan, 0.01176522],
# [-3.02025972, -0.80058994, nan],
# [ 0.07409568, nan, -0.68127572],
# [-0.26904028, -0.02938237, nan]])
np.log10(array7)
# array([[-0.14601485, nan, -0.39451675],
# [ 0.09073616, nan, 0.00510957],
# [-1.31168213, -0.34769179, nan],
# [ 0.03217934, nan, -0.29587429],
# [-0.11684271, -0.0127606 , nan]])
np.log2(array7)
# array([[-0.48505084, nan, -1.31055626],
# [ 0.301419 , nan, 0.01697363],
# [-4.35731371, -1.15500714, nan],
# [ 0.10689747, nan, -0.9828731 ],
# [-0.38814307, -0.04238979, nan]])
np.sign(array7)
# array([[ 1., -1., 1.],
# [ 1., -1., 1.],
# [ 1., 1., -1.],
# [ 1., -1., 1.],
# [ 1., 1., -1.]])
np.ceil(array7)
# array([[ 1., -0., 1.],
# [ 2., -1., 2.],
# [ 1., 1., -0.],
# [ 2., -1., 1.],
# [ 1., 1., -1.]])
np.floor(array7)
# array([[ 0., -1., 0.],
# [ 1., -2., 1.],
# [ 0., 0., -1.],
# [ 1., -2., 0.],
# [ 0., 0., -2.]])
np.isnan(array7)
# array([[False, False, False],
# [False, False, False],
# [False, False, False],
# [False, False, False],
# [False, False, False]])
np.isnan(np.log(array7))
# array([[False, True, False],
# [False, True, False],
# [False, False, True],
# [False, True, False],
# [False, False, True]])
np.isinf(array7)
# array([[False, False, False],
# [False, False, False],
# [False, False, False],
# [False, False, False],
# [False, False, False]])
np.cos(array7)
# array([[ 0.75543937, 0.97794732, 0.91982372],
# [ 0.33201636, 0.0054347 , 0.53030614],
# [ 0.99881007, 0.90085385, 0.83189721],
# [ 0.4740515 , 0.25268016, 0.87470424],
# [ 0.72199671, 0.56443714, -0.1131327 ]])
np.tanh(array7)
# array([[ 0.61347338, -0.20734996, 0.38265414],
# [ 0.84326133, -0.91628481, 0.7665198 ],
# [ 0.04874987, 0.42112928, -0.52865637],
# [ 0.79205034, -0.86562212, 0.46680014],
# [ 0.64349291, 0.74916319, -0.93340082]])