NumPy - 수학/과학 연산을 위한 파이썬 패키지


_images/numpy_logo.png


NumPy는 수학, 과학 연산을 위한 파이썬의 필수적이고 기본적인 패키지입니다.

NumPy는 Numerical + Python의 합성어로서, 일반적으로 ‘넘파이’라고 읽습니다.



1. 설치

NumPy는 아나콘다에 기본적으로 포함되어 있지만 설치되어 있지 않다면 아래의 명령문을 통해 설치합니다.

conda를 사용하고 있다면,

conda install numpy

pip를 사용하고 있다면,

pip install numpy

명령문을 사용해서 NumPy 패키지를 설치합니다.



2. 기본 사용

NumPy의 주요한 객체는 다차원의 동종 어레이 (homogeneous multidimensional array)입니다.

보통 숫자로 구성되는 어레이는 모두 동일한 타입의 요소를 갖고, 음이 아닌 정수 (0, 1, 2 ..)로 인덱싱됩니다.

NumPy 어레이를 하나 만들고 출력해 보겠습니다.

예제

import numpy as np

a = np.array([1, 2, 3])
print(a)
[1 2 3]

np.array() 함수에 숫자들을 입력함으로써 1차원의 어레이가 하나 만들어지고 출력됩니다.



3. 어레이 생성/초기화

NumPy는 어레이의 생성/초기화와 관련된 다양한 함수 (링크)를 제공합니다.

예제

import numpy as np

a = np.zeros(3)
b = np.ones((2, 3))

print(a)
print(b)
[0. 0. 0.]
[[1. 1. 1.]
 [1. 1. 1.]]

np.zeros()np.ones() 함수를 이용해서 0 또는 1로 채워진 특정한 형태의 어레이를 만들 수 있습니다.



4. 수학 연산

NumPy는 어레이 단위에서 수학적 연산을 위한 다양한 함수 (링크)를 제공합니다.

예제

import numpy as np

a = np.array([1., 2., 3., 4.])
b = np.array([4., 3., 2., 1.])

print(np.add(a, b))
print(np.multiply(a, b))
print(np.mean(a))
[5. 5. 5. 5.]
[4. 6. 6. 4.]
2.5

np.add() 함수를 이용해서 두 어레이의 값들을 요소별로 더하거나,

np.multiply() 함수를 이용해서 두 어레이의 값들을 요소별로 곱하거나,

np.mean() 함수를 이용해서 어레이의 값들의 평균을 간편하게 계산할 수 있습니다.

뿐만 아니라 지수/로그, 삼각함수, 행렬 연산 등의 다양한 함수들을 제공합니다.



5. 난수 생성

NumPy는 난수 생성을 위한 편리한 함수 (링크)들을 제공합니다.

예제

import numpy as np

a = np.random.rand(2, 5)
b = np.random.randn(3, 4)

print(a)
print(b)
[[0.64142195 0.85671247 0.00291901 0.66353295 0.16384621]
 [0.87473735 0.83652392 0.69267566 0.17472667 0.58480727]]
[[ 0.96173916  1.19945035 -0.52459619 -0.64527441]
 [-0.91510584 -0.73111847  0.49338803 -0.40794266]
 [-0.95217605  1.1625888   0.35279121 -0.60916499]]

np.random.rand() 함수를 이용해서 0에서 1 범위에서 균일한 분포를 갖는 숫자들을 샘플링하거나,

np.random.randn() 함수를 이용해서 표준정규분포를 갖는 숫자들을 샘플링할 수 있습니다.



6. 상수

NumPy는 편리하게 사용할 수 있는 다양한 상수 (링크)들을 제공합니다.

예제

import numpy as np

a = np.pi
b = np.e

print(a)
print(b)
3.141592653589793
2.718281828459045

np.pi는 \(\pi\) 이고, np.e는 오일러 상수(Euler’s constant)입니다.


이제 NumPy의 다양한 기능에 대해 자세히 살펴 보겠습니다.

순서는 아래와 같습니다.



다음글

다음글 :