용코딩

[numpy] range와 np.arange 본문

python

[numpy] range와 np.arange

쭈옹이 2024. 1. 26. 10:51

python 기본 내장 range와 np.arange

특정 숫자 범위에서 iteration이 필요할때 python 기본 내장 range 혹은 np.arange를 사용합니다.

특히 for 문에 시작에 자주 사용을 하는데요,

for i in range(1,100,1):
    ~~

오늘은 range와 np.arange의 차이점 그리고 유용하게 사용 될 포인트에 대해 알아보겠습니다.

 

range와 np.arange의 사용방법은 동일합니다. 값을 따로 기입 하지 않았을때는 기본 값으로 설정이 됩니다.

range(시작(기본0), 끝(미포함), step size(기본1))

np.arange (시작(기본0), 끝(미포함), step size(기본1)) 

간단한 사용 예제)

import numpy as np

range(10)
#range(0, 10)
range(0,10,2)
#range(0, 10, 2)

np.arange(10)
#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.arange(0,10,2)
#array([0, 2, 4, 6, 8])

 

range와 np.arange의 차이

1. step size

range에선 정수단위의 step size만 지원하고, np.arange에선 실수 단위로도 step size 설정이 가능합니다.

np.arange(10,0,-1.5)
#array([10. ,  8.5,  7. ,  5.5,  4. ,  2.5,  1. ])

2. output 형식

위 간단 예제에서 보실 수 있듯이 range의 경우 range iterator를 출력하고, np.arange는 np.array 자료형을 출력합니다.

그래서 np.arange 결과는 np.array가 할 수 있는 연산 및 인덱싱을 모두 수행 할 수 있다는 점에서 매우 유용합니다.

np.arange(0,10,2)+10
#array([10, 12, 14, 16, 18])
np.arange(0,10,2)*1.5
#array([ 0.,  3.,  6.,  9., 12.])
np.arange(0,10,1)[:5]
#array([0, 1, 2, 3, 4])

(range의 경우 연산 시 type error 발생)

range(0,10,2)+10
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
----> 1 range(0,10,2)+10

TypeError: unsupported operand type(s) for +: 'range' and 'int'

 

지금까지 python 내장 range와 numpy의 np.arange를 알아보았습니다.

감사합니다!

'python' 카테고리의 다른 글

[python] jupyter notebook 설치하기  (0) 2024.02.04
[python] IDE(VSCode) 설치하기  (0) 2024.02.04
[python] python 설치하기  (2) 2024.01.29
[os] 주소에서 파일 명만 추출하기  (0) 2024.01.26