대규모 다차원 배열을 다룰 수 있게 도와주는 라이브러리
배열 내의 원소는 같은 dtype을 가진다.
np.array([1,2,3,4,5])
np.array([3, 1.4, 2, 3, 4]) # [3. ,1.4, 2. ,3. , 4.]
np.array([1, 2], [3, 4]) # [[1, 2], [3, 4]]
np.array([1, 2, 3, 4], dtype='float')
np.zeros(10, dtype=int)
np.ones((3, 5), dtype=float) # 3 x 5 배열
np.arrage(0, 20, 2) # 0에서 20미만까지 2step을 가진 배열
np.linspace(0, 1, 5) # 0에서 1이하까지 5등분된 요소를 가진 배열
np.random.random((2, 2)) # 0과 1사이 난수
np.random.normal(0, 1, (2,2)) # params(mean, standard deviation, size)
np.random.randint(0, 10, (2,2)) # parmas(low, high, size)
x2 = np.random.randint(10, size=(3,4))
x2.ndim # 2
x2.shape # (3,4)
x2.size # 12
x2.dtype # dtype('int64')
x = np.arrage(8)
x.shape # (8.)
x2 = x.reshape((2,4))
x2.shape # (2,4)
matrix = np.arrage(4).reshape(2,2)
np.concatenate([matrix, matrix], axis=0) # 세로방향
np.concatenate([matrix, matrix], axis=1) # 가로방향
matrix = np.arrage(16).reshape(4,4)
upper, lower = np.split(matrix, [3], axis = 0) # 세로방향
upper, lower = np.split(matrix, [3], axis = 1) # 가로방향
x = np.arange(4)
x + 5
# array([5, 6, 7, 8])
x - 5
# array([-5, -4, -3, -2])
x * 5
# array([ 0, 5, 10, 15])
x / 5
# array([0. , 0.2, 0.4, 0.6])
x = np.arange(4).reshape((2, 2))
y = np.random.randint(10, size=(2, 2))
x + y
# array([[1, 7],
[6, 5]])
x - y
# array([[-1, -5],
[-2, 1]])
shape이 다른 array끼리 연산.
서로의 shape에 맞게 빈 곳을 반복을 통해 채워 넣고 연산한다고 생각하면 이해하기 쉽다.
x = np.arange(8).reshape((2,4))
np.sum(x) # 28
np.min(x) # 0
np.max(x) # 7
np.mean(x) # 3.5
np.sum(x, axis=0) # [4, 6, 8, 10]
np.sum(x, axis=1) # [6, 22]
True, False array를 통해 True를 만족하는 값들만 필터링
x = np.arange(5)
x < 3 # [True, True, True, False, False]
x[x < 3] # [0, 1, 2]