zenn.skin 무료버전 배포중!
자세히보기

Python/Syntax

[Numpy] arange, linspace

koosco! 2022. 7. 13. 02:35

numpy에 일정 간격을 가지는 ndarray를 생성할 수 있는 함수에는 numpy.arange와 numpy.linspace가 있습니다. 상황에 따라 조금씩 다르게 사용되는 두 함수에 대해 정리해 보려 합니다.

 

1. arange

- 생성되는 ndarray의 개수는 모르고, 간격만 결정합니다. 파이썬의 리스트와 거의 동일합니다.

- arange는 총 4개의 인자를 받습니다. (start, stop, step, dtype)

- arange(start, stop, step, dtype=None), start부터 stop까지 step 간격을 가지는 ndarray를 생성합니다.

- 파이썬에서 제공되는 range함수와 거의 동일하게 작돟하며, stop은 ndarray에 포함되지 않습니다.

- numpy의 ndarray는 파이썬 리스트와 다르게 array 안 요소들의 자료형이 동일해야 합니다. dtype을 설정하면 ndarray 안에 있는 모든 요소들이 동일한 자료형으로 설정됩니다.

- step이 정수가 아닌 0.1, 0.2 등 부동소수형이면 ndarray안 요소들이 자동으로 float형으로 저장됩니다.

import numpy as np
    print(np.arange(0, 10)) # 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
    print(np.arange(0, 10, 2)) # 0, 2, 4, 6, 8
    print(np.arange(0, 10, 2, dtype=float)) # 0., 2., 4., 6., 8.
    
    print(np.arange(0, 11, 2)) # 0, 2, 4, 6, 8, 10

 

2. linspace

- 일정한 간격을 가지는 ndarray를 생성합니다. 요소들간의 간격은 모르고 개수만 정해집니다.

- linspace는 총 6개의 인자를 받습니다. (start, stop, num, endpoint, retstep, dtype)

- start부터 stop까지 같은 간격을 가지며 num 수만큼의 크기를 가지는 ndarray를 생성합니다.

- num: default=50이며, 반환값인 ndarray가 가지는 요소의 개수를 지정합니다.

- endponit: 마지막 원소를 포함할지 여부를 결정합니다. default=True입니다.

print(np.linspace(10, 20, 3))
print(np.linspace(10, 20, 3, endpoint=False))
print(np.linspace(10, 20, 4))

num = n 일 때, endpoint가 포함되지 않는 경우에 ndarray가 갖는 요소는, num = n + 1일 때의 ndarray에서 마지막 요소만 제외된 것과 동일한 결과입니다.

 

- retstep: 반환할 때, 계산된 step의 크기를 배열과 같이 반환할지 정합니다. default=False입니다.

- dtype: 반환되는 ndarray의 자료형을 결정합니다.

print(np.linspace(0, 10, 2) # [0., 10.]
print(np.linspace(0, 10, 3) # [0., 5., 10.]
print(np.linspace(0, 10, 4) # [0., 3.33333, 6.66667, 10.]

print(np.linspace(0, 10, 2, retstep=True)) # ([0., 10.], 10.0)
print(np.linspace(0, 10, 3, retstep=True)) # ([0., 5., 10.], 5.0)
print(np.linspace(0, 10, 4, retstep=True)) # ([0., 3.33333, 6.66667, 10.], 3.33333)

 

3. 정리

  arange linspace
함수 기능 동일한 간격의 ndarray를 생성
간격(step) 입력받음 함수가 설정함
ndarray의 요소 개수 함수가 설정함 입력받음

'Python/Syntax'의 다른글

  • 현재글 [Numpy] arange, linspace

관련글