때로는 1부터 100까지 정수의 배열과 같이 많은 원소를 가지면서 규칙적으로 증가하는 배열이 필요할 수 있습니다. 이 경우 원소가 많기 때문에 일일이 입력하는 것은 번거로운 일입니다. 이럴 때 Python의 NumPy 모듈을 이용하여 원하는 배열을 만들 수 있습니다. 이번 포스팅은 NumPy의 arange()와 linspace() 함수들을 이용해서 배열을 만들어 보겠습니다.
NumPy의 arange() & linspace()함수
Python의 NumPy모듈은 일정한 간격의 값들을 원소로 하는 배열을 만들 수 있는 함수들을 제공합니다.
첫 번째는 arange() 함수로 보통 다음과 같이 세 개의 인자를 입력합니다.
import numpy as np
ar = np.arange(0, 5, 1)
여기서 인자들은 순서대로 배열의 시작 값, (포함되지 않는) 상한 값, 그리고 증가되는 값을 의미합니다.
배열 ar은 [0, 1, 2, 3, 4]입니다.
위 예에서 생성되는 배열은 ‘5’를 포함하지 않으니 주의하시기 바랍니다.
두 번째는 이와 유사한 linspace() 함수입니다.
import numpy as np
lin = np.linspace(0, 5, 6)
arange()의 경우와는 다르게 linspace()는 두 번째 인자가 배열에 포함됩니다.
여기서 첫 번째 인자 ‘0’은 역시 배열의 시작 값, 두 번째 인자 ‘5’는 배열의 마지막 항이 됩니다.
다른 점은 세 번째 인자 ‘6’이 원소(항)의 개수를 의미한다는 것입니다.
arange()와는 달리 원소의 개수에 맞춰 균등한 증가분을 자동으로 계산해 줍니다.
그래서 위 예의 배열 lin은 [0., 1., 2., 3., 4., 5.]가 됩니다.
재밌는 것은 위 예의 ar 배열은 정수형(int) 항을 갖고, lin은 실수형(float)을 가지는 것입니다.
다음과 같이 인자들을 살짝 바꿔보면 arange()와 linspace()의 차이를 좀 더 명확히 알 수 있습니다.
import numpy as np
ar = np.arange(0, 5.0, 1)
또는
import numpy as np
ar = np.arange(0, 5.1, 1)
여기서 첫 번째 예의 배열은 [0., 1., 2., 3., 4.],
두 번째의 경우는 [0., 1., 2., 3., 4., 5.]입니다.
'Python > python 응용: 수학 및 과학' 카테고리의 다른 글
python에서 세 점으로 이뤄진 삼각형의 넓이 구하기 (0) | 2023.04.14 |
---|---|
불리언 배열이 numpy.sum 함수에서 어떻게 더해지나? (0) | 2023.04.13 |
Numpy 복소수 계산하기: 근의 공식 (0) | 2022.12.21 |
Python matplotlib 그래프 그리기 (0) | 2022.12.07 |
Python NumPy 행렬의 원소 접근하여 작업하기: trace (0) | 2022.12.06 |
댓글