갈루아의 반서재

NumPy linspace 함수는 숫자로 된 시퀀스를 생성하는 툴로, NumPy arange 함수와 유사하지만, Numpy array 로 구성된 균등한 간격을 둔 시퀀스를 생성한다. 시작점과 종점을 정하고, 해당 간격내(시작점과 종점 포함)의 브레이크포인트의 총 갯수를 정하면, np.linspace 함수는 해당 간격내에 일정한 간격을 둔 브레이크포인트 갯수만큼의 시퀀스를 반환하게 된다. 간단하게 다음과 같은 경우를 생각해보자. 

import numpy as np
np.linspace(start = 0, stop = 100, num = 5)

array([ 0., 25., 50., 75., 100.])

 

위 코드는 다음과 같은 Numpy Array (ndarray object) 를 생성한다. 해당 범위내에 num 인수에 상응하는 5개의 아이템이 존재한다. 

0 25 50 75 100

위의 예에서 범위는 0 에서 시작해서 100 에서 끝난다. 그리고 5개의 브레이크포인트를 가진다. 첫번째 아이템은 0 이고, 마지막 아이템은 100이다. 나머지 3개의 아이템을 0 과 100 사이에 균등한 간격으로 분포시키면 된다. 

 

Numpy linspace 구문은 다음과 같다. 

np.linspace(start, stop, num, endpoint, dtype)

그리고 해당 함수에서 사용되는 파라메터는 다음과 같다. 

 

start (required) - 범위의 시작값. start = 0 이면, 새로운 nd.array 의 첫번째 값은 0 이 된다.

stop (required) - 대부분의 경우 아웃풋의 마지막 값이 된다. 하지만 endpoint = False 로 지정하면 해당 stop 값은 포함되지 않게 된다. 

num (optional) - 아웃풋 배열에 나오는 전체 아이템의 갯수. num = 5 이면, 아웃풋 배열에는 5개의 전체 아이템이 존재하게 된다. 선택사항으로 num 값을 넣지 않으면 np.linspace 는 기본값으로 num = 50 을 사용하게 된다.

endpoint (optional) - 아웃풋 배열에 stop 값이 포함될 것인지 여부. endpoint = True 이면 nd.arrary 의 마지막 값으로 stop 파라메터의 값이 들어가게 되고, 그렇지 않은 경우 stop 파라메터는 해당 아웃풋에 포함되지 않는다. 기본값은 True 이다. 다음과 같이 False 로 지정되면 stop 값인 5 는 결과 배열에 포함되지 않게 된다.

np.linspace(start = 1, stop = 5, num = 4, endpoint = False)

array([1., 2., 3., 4.])

 

dtype (optional) - 데이터 타입을 정하지 않으면 다른 파라메터의 값에 기반하여 데이터 타입을 추정한다. 만약 데이터  타입을 명시적으로 표현하고자 한다면, 다음을 참조하여 지정한다.

 

available data types from NumPy and base Python

np.linspace(start = 0, stop = 100, num = 5)

array([ 0., 25., 50., 75., 100.])

np.linspace(start = 0, stop = 100, num = 5, dtype = int)

array([ 0, 25, 50, 75, 100])