스택큐힙리스트

파이썬 / 판다스 / 넘파이를 이용한 도형 수열 (루프 없이 반복 가능한 수식 사용) 본문

카테고리 없음

파이썬 / 판다스 / 넘파이를 이용한 도형 수열 (루프 없이 반복 가능한 수식 사용)

스택큐힙리스트 2023. 12. 22. 10:47
반응형

파이썬 / 판다스 / 넘파이를 사용하여 기하급수를 구현하고 싶습니다.


다음은 내가 한 것입니다:


N = 10
n0 = 0
n_array = np.arange(n0, n0 + N, 1)
u = pd.Series(index = n_array)
un0 = 1
u[n0] = un0
for n in u.index[1::]:
#u[n] = u[n-1] + 1.2 # 등차급수
u[n] = u[n-1] * 1.2 # 등비급수
print(u)

결과:


0    1.000000
1 1.200000
2 1.440000
3 1.728000
4 2.073600
5 2.488320
6 2.985984
7 3.583181
8 4.299817
9 5.159780
dtype: float64

이 for 루프를 사용하지 않고 어떻게 할 수 있는지 궁금합니다.



https://fr.wikipedia.org/wiki/Suite_g%C3%A9om%C3%A9trique
에서 살펴봤는데 u_n은 다음과 같이 표현할 수 있다는 것을 알게 되었습니다: u_n = u_{n_0} * q^{n-n_0}


그래서 그렇게 해 보았습니다.

n0 = 0
N = 10
n_array = np.arange(n0, n0 + N, 1)
un0 = 1
q = 1.2
u = pd.Series(map(lambda n: un0 * q ** (n - n0), n_array), index = n_array)


괜찮아요...하지만 저는 이를 재귀적으로 정의하는 방법을 찾고 있습니다.


u_n0 = 1
u_n = u_{n-1} * 1.2

하지만 파이썬 / 판다스 / 넘파이를 사용하여 어떻게 해야할지 모르겠습니다... 가능한지 궁금합니다.

답변 1

다른 가능성, 지수를 사용하는 것보다 아마도 계산적으로 효율적인 방법:


>>> N, un0, q = 10, 1, 1.2
>>> u = np.empty((N,))
>>> u[0] = un0
>>> u[1:] = q
>>> np.cumprod(u)
array([ 1. , 1.2 , 1.44 , 1.728 , 2.0736 ,
2.48832 , 2.985984 , 3.5831808 , 4.29981696, 5.15978035])

답변 2

기하급수는 등비수열이라고도 불리며, 각 항이 이전 항에 대해 일정한 비율로 증가 또는 감소하는 수열을 의미합니다. 파이썬과 함께 사용되는 파이썬 모듈인 판다스와 넘파이를 활용하여 기하급수를 계산하는 방법을 알아보겠습니다. 이 방법은 반복문을 사용하지 않고, 점화식을 활용합니다.
판다스는 파이썬에서 데이터를 다루는 데 사용되는 강력한 도구입니다. 넘파이는 수학과 과학 계산을 위한 라이브러리이며, 다차원 배열과 관련된 연산을 효과적으로 수행할 수 있습니다. 이들 모듈을 사용해 기하급수를 계산하는 방법은 간단합니다.
먼저, 필요한 모듈을 가져옵니다:
```python
import pandas as pd
import numpy as np
```
다음으로, 기하급수의 첫 번째 항과 등비를 입력합니다:
```python
first_term = 2
ratio = 3
```
판다스와 넘파이를 사용하여 기하급수를 계산하는 함수를 만듭니다:
```python
def calculate_geometric_series(first_term, ratio, num_terms):
terms = np.geomspace(first_term, first_term * (ratio ** (num_terms-1)), num=num_terms)
series = pd.Series(terms)
return series
```
위의 함수는 `np.geomspace`를 사용하여 기하급수의 각 항들을 계산하고, 이들을 판다스의 `Series`로 변환하여 반환합니다. `num_terms`는 계산하려는 항의 개수입니다.
기하급수를 계산하고 결과를 출력하는 예시 코드는 다음과 같습니다:
```python
num_terms = 5
geometric_series = calculate_geometric_series(first_term, ratio, num_terms)
print(fThe geometric series with {num_terms} terms:\n{geometric_series})
```
위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다:
```
The geometric series with 5 terms:
0 2.000
1 6.000
2 18.000
3 54.000
4 162.000
dtype: float64
```
결과를 보면, 첫 번째 항이 2이고 등비가 3인 기하급수의 5개 항을 계산한 것을 확인할 수 있습니다.
파이썬과 함께 사용되는 판다스와 넘파이를 활용하여 반복문 없이 기하급수를 계산하는 방법을 알아보았습니다. 이는 효율적이고 간결한 방법이며, 대용량의 데이터를 다루는 데에도 유용합니다. 파이썬을 공부하거나 데이터 분석에 관심이 있는 사람이라면, 이 방법을 응용하여 다양한 계산에 활용할 수 있을 것입니다.

반응형
Comments