데이터분석/다섯째주
파이썬 Python : numpy 모듈
핑크댕댕이
2023. 10. 28. 07:18
728x90
Numpy 모듈
수치 데이터를 다루는 파이썬 패키지
통상적으로 np라는 별칭으로 많이 쓴다.
import numpy as np
arange( ) 함수
특정 구간의 숫자 배열을 생성하는 함수
np.arange( 시작점, 끝점, step= )
- 시작점 = 생략시 default값은 0이다.
- 끝점 = 끝점, 결과값에 미포함 된다.
- step = 간격, 생략시 default값은 1이다.
- 실행 결과의 수열이 numpy array 형태의 자료형이다.
import numpy as np
print( np.arange(10), '\n')
print( np.arange(1, 15, 2), '\n' )
print ( np.arange(9, -2, -1.5), '\n' )
-- 출력 --
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]) array([ 1, 3, 5, 7, 9, 11, 13 ]) array([ 9. , 7.5, 6. , 4.5, 3. , 1.5, 0. , -1.5 ]) |
np.arange VS range
- range 함수는 정수 단위만 지원
np.arange 함수는 실수 단위도 가능 - range 함수는 range iterator 자료형으로 반환
np.arange 함수는 numpy array 자료형으로 반환, 연산 연계 가능 - for문 등에서 순회하고 싶은 수열이 정수 구성이라면 range 함수가 수행시간에 더 유리
- array 에서 직접 연산하는 경우에는 np.arange 함수가 수행시간에 더 유리
import numpy as np
import time
# range 순회 예시
start = time.time()
for x in range(10 ** 5): x * 2
print(time.time() - start) # 0.014
# np.arange 순회 예시
start = time.time()
for x in np.arange(10 ** 5): x * 2
print(time.time() - start) # 0.043
# np.arange numpy array 연산
start = time.time()
np.arange(10 ** 5) * 2
print(time.time() - start) # 0.001
range(1, 5) * 2 # TypeError 발생
linspace( ) 함수
지정된 범위 내에서 균등하게 간격을 두고 원하는 개수만큼의 데이터를 생성하여 배열로 반환한다
np.linspace( 시작점, 끝점, num=, endpoint=True, retstep=False, dtype=None)
- start = 시작값
- stop = 끝값
- num = (선택적 인자) 생성할 데이터 개수 (기본값: 50)
- endpoint = (선택적 인자) 마지막 값이 범위에 포함되는지 여부 (기본값: True)
- retstep = (선택적 인자) 간격을 반환할지 여부 (기본값: False)
- dtype = (선택적 인자) 생성될 배열의 데이터 타입 (기본값: None)
import numpy as np
# 0부터 10까지의 범위에서 5개의 데이터를 생성, 균등한 간격으로 배치
my_array = np.linspace(0, 10, num=5)
print(my_array, '\n')
my_array, step = np.linspace(0, 10, num=5, retstep=True)
print(my_array)
print(step)
-- 출력 --
[ 0. 2.5 5. 7.5 10. ] [ 0. 2.5 5. 7.5 10. ] 2.5 |
반응형