activate base
numpy
설치conda install numpy
jupyter notebook
import numpy as np
import numpy as np
np.array([1, 4, 5], float)
print(test_array)
# [1. 4. 5.]
type(test_array[3])
# numpy.float64
a[0] is b[0]
를 수행하면 False 가 나옴 (리스트에서는 True)import numpy as np
test_matrix = [[1, 2, 3, 4], [1, 2, 5, 8]]
np.array(test_matrix).shape
# (2, 4)
np.array(test_matrix).reshape(4, 2)
# array([[1, 2],
# [3, 4],
# [1, 2],
# [5, 8]])
np.array(test_matrix).reshape(2, 2, 2)
# array([[[1, 2],
# [3, 4]],
# [[1, 2],
# [5, 8]]])
np.array(test_matrix).reshape(-1, 1)
# -1 => 8
# array([[1],
# [2],
# [3],
# [4],
# [1],
# [2],
# [5],
# [8]])
a
# array([[10., 2., 3., 4.],
# [ 1., 2., 5., 8.]])
a[:, 2:]
# array([[3., 4.],
# [5., 8.]])
a[1, 1:3]
# array([2., 5.])
a[1:2]
# array([[1., 2., 5., 8.]])
::
는 step 기능, x 칸 뛰어넘음b = np.arange(30)
b
# array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
# 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29])
b = b.reshape(5, 6)
b
# array([[ 0, 1, 2, 3, 4, 5],
# [ 6, 7, 8, 9, 10, 11],
# [12, 13, 14, 15, 16, 17],
# [18, 19, 20, 21, 22, 23],
# [24, 25, 26, 27, 28, 29]])
np.arange(0, 10, 0.5)
# array([0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. , 5.5, 6. ,
# 6.5, 7. , 7.5, 8. , 8.5, 9. , 9.5])
np.identity(n = 3, dtype = np.int8)
# or
np.identity(3)
# array([[1., 0., 0.],
# [0., 1., 0.],
# [0., 0., 1.]])
np.eye(3)
# array([[1., 0., 0.],
# [0., 1., 0.],
# [0., 0., 1.]])
np.eye(3, 5, k=2)
# array([[0., 0., 1., 0., 0.],
# [0., 0., 0., 1., 0.],
# [0., 0., 0., 0., 1.]])
b
# array([[ 0, 1, 2, 3, 4, 5],
# [ 6, 7, 8, 9, 10, 11],
# [12, 13, 14, 15, 16, 17],
# [18, 19, 20, 21, 22, 23],
# [24, 25, 26, 27, 28, 29]])
np.diag(b)
# array([ 0, 7, 14, 21, 28])
np.random.normal(0, 1, 10)
# array([-0.01407373, -0.90342127, 3.04201844, 2.45111633, -0.32714641,
# -0.07848476, -0.65410073, 0.36465804, -0.26742882, 0.84662701])
np.random.normal(0, 1, 10).reshape(2, 5)
# array([[ 0.10503633, 0.711939 , 1.62220759, 0.01422367, -1.71976678],
# [-2.26470677, 0.57157168, -0.88920551, -0.00722432, 0.49078863]])
np.random.exponential(1)
# 1.2748717265749823
np.random.exponential(scale=2, size=10)
# array([0.35423572, 0.71810005, 0.79145404, 3.74830117, 1.94590341,
# 2.61224156, 4.21561447, 0.86994613, 1.01113432, 2.48008649])
test_array = np.arange(1, 13).reshape(3, 4)
test_array
# array([[ 1, 2, 3, 4],
# [ 5, 6, 7, 8],
# [ 9, 10, 11, 12]])
test_array.sum(axis=1)
# array([10, 26, 42])
test_array.sum(axis=0)
# array([15, 18, 21, 24])
# matrix, scalar
test_array
# array([[ 1, 2, 3, 4],
# [ 5, 6, 7, 8],
# [ 9, 10, 11, 12]])
test_array + 100
# array([[101, 102, 103, 104],
# [105, 106, 107, 108],
# [109, 110, 111, 112]])
# matrix, vector
test_matrix = np.arange(1, 13).reshape(4,3)
test_vector = np.arange(10, 40, 10)
test_matrix + test_vector
# array([[11, 22, 33],
# [14, 25, 36],
# [17, 28, 39],
# [20, 31, 42]])
iternation_max = 1e9
scalar = 2
%timeit np.arange(iternation_max) * scalar # numpy 를 이용한 성능 측정
# 51.4 µs ± 484 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
a = np.arange(5, 15)
a
# array([ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
np.where(a > 10)
# (array([6, 7, 8, 9]),)
test_array = np.array([1, 4, 0, 2, 3, 8, 9, 7], float)
test_array > 3
# array([False, True, False, False, False, True, True, True])
# boolean index
test_array[test_array > 3]
# array([4., 8., 9., 7.])
a = np.array([2, 4, 6, 8], float)
b = np.array([0, 0, 1, 3, 2, 1], int) # 반드시 int 로 선언
a[b]
# array([2., 2., 4., 8., 6., 4.])
a.take(b)
# array([2., 2., 4., 8., 6., 4.])
a = np.array([[1, 4], [9, 16]], float)
b = np.array([0, 0, 1, 1, 0], int)
c = np.array([0, 1, 1, 1, 1], int)
a[b, c]
# array([ 1., 4., 16., 16., 4.])
a[b]
# array([[ 1., 4.],
# [ 1., 4.],
# [ 9., 16.],
# [ 9., 16.],
# [ 1., 4.]])
BoostCamp AI Tech