달나라 노트

Python numpy : linspace (일정 간격으로 나눠진 array 생성하기, 구간 나누기) 본문

Python/Python numpy

Python numpy : linspace (일정 간격으로 나눠진 array 생성하기, 구간 나누기)

CosmosProject 2021. 3. 29. 22:02
728x90
반응형

 

 

 

linspace(start, stop, num, endpoint=True/False)

numpy의 linspase는 start부터 stop까지 num에 표시된 개수의 숫자만큼 동일한 간격을 가질 수 있도록 나눕니다.

무슨 소린지 말로 설명하면 어려우니 실제 예시를 봅시다.

 

 

import numpy as np

np_linspace_test = np.linspace(start=0, stop=10, num=5)
print(type(np_linspace_test))
print(np_linspace_test)

list_linspace_test = list(np_linspace_test)
print(list_linspace_test)



-- Result
<class 'numpy.ndarray'>
[ 0.   2.5  5.   7.5 10. ]
[0.0, 2.5, 5.0, 7.5, 10.0]

위 예시를 보면 0부터 10까지의 숫자를 총 5개로 나누고있습니다.

여기에서 조건은 0은 시작 숫자이며 10은 끝숫자이고 그 사이에 있는 3개의 숫자가 균일한 간격으로 나뉘어져야하겠죠.

 

따라서 0, 2.5, 5, 7.5, 10 이렇게 나눠진겁니다.

return값은 numpy.ndarrary이고 list method를 이용해 list로 변경할 수도 있습니다.

 

 

import numpy as np

np_linspace_test = np.linspace(start=0, stop=10, num=5, endpoint=False)
print(list(np_linspace_test))



-- Result
[0.0, 2.0, 4.0, 6.0, 8.0]

endpoint값을 False로 지정했습니다.

이건 0부터 10까지의 숫자를 총 5개로 나눕니다.

단 마지막에 10이 포함되지 않습니다.

 

즉, 첫 값은 0이며 그 이후에 나올 4개의 값을 10 미만까지 균일한 간격으로 나눠야합니다.

 

따라서 0, 2, 4, 6, 8이 반환되었습니다.

 

 

 

 

import numpy as np

np_linspace_test = np.linspace(start=0, stop=10, num=5, retstep=True)
print(np_linspace_test)


np_linspace_test = np.linspace(start=0, stop=20, num=5, retstep=True)
print(np_linspace_test)



-- Result
(array([ 0. ,  2.5,  5. ,  7.5, 10. ]), 2.5)
(array([ 0.,  5., 10., 15., 20.]), 5.0)

retstep옵션을 True로 하면 나눠진 각 인자들의 간격 정보도 포함하여 return합니다.

 

 

 

 

 

 

728x90
반응형
Comments