NumPy는 Python에서 과학 연산을 위한 가장 기본적인 패키지 중 하나입니다. NumPy는 데이터 분석, 데이터 처리, 선형 대수, 머신 러닝 등 다양한 분야에서 널리 사용되고 있습니다.
Numpy의 특징으론 다음과 같습니다.
numpy를 사용하기 위해서는 먼저 numpy 모듈을 불러와야 합니다. numpy 모듈을 불러오는 코드는 다음과 같습니다.
# numpy 모듈 불러오기
import numpy as np
ndarray는 Numpy에서 제공하는 다차원 배열 객체로, 동일한 데이터 타입을 가진 요소로 구성된 배열입니다.
python의 리스트를 ndarray로 만드는 과정은 다음과 같습니다.
py_lst = [1, 2, 3]
arr1 = np.array(py_lst) # np.array : 파이썬의 리스트를 ndarray화
arr1
np.arrange()는 범위 내의 일정 간격을 가진 배열을 생성하는 함수입니다. 함수의 인수로는 생성할 배열의 범위와 간격을 지정합니다. 파이썬의 range()함수와 흡사하게 사용됩니다.
np.arange(1, 10, 2)
위 코드의 출력 결과는 다음과 같습니다.
[1 3 5 7 9]
np.zeros()는 0으로 채워진 배열을 만들 때 사용합니다. 함수의 인수로는 shape(형상)을 입력받습니다.
np.zeros((3, 2))
위 코드의 출력 결과는 다음과 같습니다.
[[0. 0.]
[0. 0.]
[0. 0.]]
np.ones()는 1로 채워진 배열을 만들 때 사용합니다. 함수의 인수로는 np.zeros()와 같이 shape(형상)을 입력받습니다.
np.ones(5)
위 코드의 출력 결과는 다음과 같습니다.
[1. 1. 1. 1. 1.]
np.full()는 지정한 숫자로 배열을 만들 때 사용합니다. 함수의 인수로는 앞엔 shape, 뒤에는 채울 숫자를 입력받습니다.
np.full((2, 3), 7)
위 코드의 출력 결과는 다음과 같습니다.
[[7 7 7]
[7 7 7]]
np.linspace()는 범위 내에서 균등 간격으로 원하는 개수의 배열을 생성합니다. 인수로는 시작 값, 끝 값, 생성할 데이터 수를 받습니다.
np.linspace(1, 10, 3)
위 코드의 출력 결과는 다음과 같습니다.
[ 1. 5.5 10. ]
np.random.rand()는 0과 1 균등 분포에서 난수를 생성하여 배열을 만드는 함수입니다. 함수의 인수로는 shape를 받습니다.
np.random.rand(2, 3)
위 코드의 출력 결과는 다음과 같습니다.
[[0.66394392 0.03015166 0.48187234]
[0.5854829 0.28808383 0.16924803]]
np.random.randn()는 평균이 0이고 표준편차가 1인 정규 분포를 따르는 난수를 생성하여 배열을 만드는 함수입니다. 함수의 인수로는 np.random.rand()와 같이 배열의 shape를 받습니다.
np.random.randn(16)
위 코드의 출력 결과는 다음과 같습니다.
[ 0.06751993 0.49481617 1.45377871 0.49295155 -0.05503713 0.43659366
-0.43338015 -1.15205585 -0.98363672 -2.33598625 0.6001808 0.57975685
-0.00717542 -1.27329527 1.01392436 -1.1330409 ]
np.random.uniform()은 np.random.rand()와 비슷하게 균일 분포에서 난수를 생성하는데 사용하지만 np.random.uniform()은 범위를 설정하여 원하는 구간의 난수를 생성하는 함수입니다. 인수로는 시작 값, 끝 값, shape 순으로 받습니다.
np.random.uniform(1.0, 3.0, size = (4, 5))
위 코드의 출력 결과는 다음과 같습니다.
[[2.55752745 1.52754581 1.53850947 2.31543273 2.14299603]
[1.9052815 1.65771296 1.46036962 2.78939883 2.64073966]
[2.02382006 2.29119511 1.59647249 1.76267449 2.31768143]
[1.7015004 1.35017402 2.14816339 1.00845003 1.98943171]]
np.random.choice()은 0부터 (끝 값 -1)의 정수를 랜덤하게 샘플링한 배열을 복원 추출하는 함수입니다. 인수로는 끝 값, 배열의 크기로 받습니다. 비복원 추출을 하고 싶으면 인수 뒤에 replace = False 추가하면 됩니다.
np.random.choice(10, size = (2, 3))
위 코드의 출력 결과는 다음과 같습니다.
[[2 5 1]
[0 4 5]]
np.random.randint()은 주어진 정수 범위에서 난수를 생성을 만들 때 사용하는 함수입니다. 인수로는 시작 값, 끝 값, 배열의 크기를 받습니다.
np.random.randint(10, 100, size = (3, 4))
위 코드의 출력 결과는 다음과 같습니다.
[[90 37 66 66]
[25 72 91 51]
[34 36 33 26]]