Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 NumPy linspace() 완벽 가이드 – 균등 간격 숫자 배열 생성 방법

numpy.linspace 함수는 지정된 구간 내에서 균등한 간격으로 나열된 숫자 집합을 생성하는 데 사용되는 NumPy의 핵심 함수입니다. 데이터 분석, 그래프 작성, 수치 계산 등에서 자주 활용됩니다.

기본 문법

numpy.linspace(start, stop, num = 50, endpoint = True/False, retstep = False/True, dtype = None)

매개변수 설명

linspace() 함수는 다음과 같은 매개변수를 받을 수 있습니다.

  • start – 수열의 시작 값입니다. 기본값은 0으로 설정됩니다.

  • stop – 수열의 끝(종료) 값입니다.

  • num – 시작 값과 종료 값 사이에서 생성할 요소의 개수입니다. 기본값은 50입니다.

  • endpoint – 종료 값(stop)을 출력 배열에 포함할지 여부를 결정합니다. True이면 stop 값이 배열의 마지막 요소로 포함되고, False이면 포함되지 않습니다.

  • retstep – True로 설정하면 생성된 샘플 배열과 함께 두 값 사이의 간격(step)도 함께 반환합니다. 기본값은 False입니다.

  • dtype – 출력 배열의 데이터 타입을 지정합니다. 기본값은 None으로, 입력값에 따라 자동으로 결정됩니다.

예제 1: linspace 기본 사용법

다음 예제를 통해 실제 동작 방식을 확인해 보겠습니다.

# numpy 라이브러리 임포트
import numpy as np

# linspace() 함수 사용
x = np.linspace(start = 1, stop = 20, num = 10)

# 결과 반올림
y = np.round(x)

print("X의 linspace 결과 :\n", y)

출력 결과

위 코드를 실행하면 다음과 같은 출력이 생성됩니다.

linspace of X :
 [ 1. 3. 5. 7. 9. 12. 14. 16. 18. 20.]

1부터 20까지 구간을 10개의 균등한 간격으로 나눈 결과를 확인할 수 있습니다.

예제 2: np.linspace와 np.arange의 차이점

np.arangenp.linspace와 비슷한 역할을 하지만, 두 함수에는 중요한 차이가 있습니다.

  • np.linspace – 요소의 개수(num)를 기준으로 최솟값과 최댓값 사이에 균등하게 배치된 값을 생성합니다.

  • np.arange간격(step) 크기를 기준으로 일정한 간격을 가진 값을 생성합니다.

아래 예제는 두 함수의 차이를 명확하게 보여줍니다.

# 필요한 라이브러리 임포트
import numpy as np

# np.arange : 간격(step) 기반
A = np.arange(0, 20, 2)
print("A의 요소 :\n", A)

# np.linspace : 개수(num) 기반
B = np.linspace(0, 20, 10)
B = np.round(B)
print("B의 요소 :\n", B)

출력 결과

위 코드를 실행하면 다음과 같은 출력이 생성됩니다.

Elements of A :
 [ 0 2 4 6 8 10 12 14 16 18]
Elements of B :
 [ 0. 2. 4. 7. 9. 11. 13. 16. 18. 20.]

정리

np.arange는 0부터 20까지 2씩 증가하는 간격 기반 배열을 만들고, np.linspace는 0부터 20까지 정확히 10개의 균등한 값을 만듭니다. 따라서 원하는 개수가 명확할 때는 linspace를, 일정한 간격이 중요할 때는 arange를 사용하는 것이 좋습니다.