파이썬으로 부시자! Python with Coreenee

Numpy란?

Numpy란 C언어로 구현된 파이썬 라이브러리로, 고성능 수치계산을 위해 제작이 되었다. 따라서 벡터 및 행렬 연산에 있어서 매우 편리한 기능을 제공한다.
또한, 앞으로 사용하게될 pandas와 matplotlib과 같이 사용되기도 한다. 기본적으로 array 단위로 데이터를 관리하고 이를 수행한다.


Numpy 기초

사용하기에 앞서 우리는 ** import numpy ** 로(as np 라고 생각하자) 사용환경을 만들어줘야 한다.
numpy로 array를 정의하기 위해서는 다음과 같이 해야한다.

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

다음으로 살펴볼 numpy 함수로는 shape와 ndim이다. shape를 통해서 행렬이 어떤 N x M 행렬인지 알 수 있다. ndim을 통해서는 몇 차원 배열인지 알려준다. 다음의 예를 보겠다.

np_array = np.array([1,2])
np_array2 = np.array([[1,2,3],[2,3,4]])
np_array.shape #(2,) 즉, 1차원인데 2의 크기를 가진 1차원 배열이라는 뜻이다.ㄴ
np_arary2.shape #(2, 3)
np_array.ndim #1
np_array2.ndim #2

arr의 자료형을 확인할 수 있는 함수로는 dtype이 있다. 다음과 같다.

np_array.dtype #dtype('int32')

type으로는 부호가 있는 정수 int(8, 16, 32, 64),
부호가 없는 정수 uint(8, 16, 32, 64) 등 여러개가 있다. 괄호 안에 들어있는 숫자는 크기를 의미한다. 나중에 image를 Visualization할 때 float32로 casting해야되는 부분이 있기 때문에, 조금은 알아두는게 수월하다.


array를 쉽게 만드는 함수들에 대해서 배워볼 차례이다. 간단하게, np.zeros(), np.ones(), np.arange(), np.random.randn()함수가 있다. 어떤식으로 쓰이는지 다음 예시들을 보도록하자.
~~~python np.zeros(10) #array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0]) np.zeros([2,3]) #array([[0., 0.], [0., 0.,], [0., 0.])

np.ones(10) #array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,]) np.ones([2,3]) #array([[1., 1.], [1., 1.], [1., 1.])

np.arrange(3, 10) #array([3, 4, 5, 6, 7, 8, 9])

np.random.randn(5) #array[(랜덤 5개 숫자)] np.random.randn(3, 3) #array[([랜덤 3개 숫자],[랜덤 3개 숫자],[랜덤 3개 숫자])] ~~~
위의 예제에서 알다싶이 zeros나 ones는 배열에 채워지는 기본 값이 되고, 안에 들어가는 parameter로는 어떠한 형태의 배열을 만들지 정해주는 역할을 한다. arrange 같은 경우는 python을 많이 해본 사람이면 대충 짐작이 갈 것이다. 마지막 10은 포함 안 한다는 것을 알아두자. 그리고 random 같은 경우는 그 말대로 랜덤 숫자를 만들어주는데, 안의 parameter 또한 어떠한 형태의 배열을 만들지 정해주는 역할을 한다.