데이터분석/다섯째주

파이썬 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

 

 

 

 

반응형