numpy

beomjin_97·2023년 2월 25일
0

python

목록 보기
1/5

NumPy

대규모 다차원 배열을 다룰 수 있게 도와주는 라이브러리

배열 생성

배열 내의 원소는 같은 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')

배열 변형

reshape

x = np.arrage(8)
x.shape  # (8.)
x2 = x.reshape((2,4))
x2.shape # (2,4)

concatenate

matrix = np.arrage(4).reshape(2,2)
np.concatenate([matrix, matrix], axis=0)  # 세로방향
np.concatenate([matrix, matrix], axis=1)  # 가로방향

split

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]
profile
Rather be dead than cool.

0개의 댓글