for this for 루프를 대체하기 위해 list comprehension을 사용하려고합니다. 내 목록 기능은for this loop for list comprehension을 만드는 방법
import numpy as np
def ema(x, n):
x = np.array(x)
emaint = np.zeros(len(x))
k = 2/float(n + 1)
emaint[0:n] = np.average(x[:n])
for i in range(n, len(x)):
emaint[i] = (x[i] * k) + (emaint[i - 1] * (1 - k))
return emaint
내가 EMA 호출하는 경우에 대한 결과
test_list = [3, 4, 6, 3, 8, 4, 7, 8, 12, 14, 1, 6, 7, 3, 7, 8, 3, 3, 7]
입니다 (test_list, 5) 나는이
import numpy as np
def ema_compr(x, n):
x = np.array(x)
emaint = np.zeros(len(x))
k = 2/float(n + 1)
emaint[0:n] = np.average(x[:n])
emaint[n:] = [(x[i] * k) + (emaint[i - 1] * (1 - k)) for i in range(n, len(x))]
return emaint
시도
[4.8 4.8 4.8 4.8 4.8 4.53333333 5.35555556 6.23703704 8.15802469 10.10534979 7.0702332 6.7134888 6.80899253 5.53932835 6.0262189 6.68414594 5.45609729 4.63739819 5.42493213]
될 것입니다
그러나 ema_com을 호출하면 결과가 달라집니다. 홍보 (test_list, 5) :
[4.8 4.8 4.8 4.8 4.8 4.53333333 2.33333333 2.66666667 4. 4.66666667 0.33333333 2. 2.33333333 1. 2.33333333 2.66666667 1. 1. 2.33333333]
- 이 목록의 이해를 얻을 수 있다면 내가 좋아하는 것입니다.
- 작성되지 않은 요소에 액세스하려고하기 때문에 목록 이해 결과가 달라 집니까?
. 나는 x가 "test_list"라고 생각한다. 어때? – skilledDt
그는 그의 질문에서'ema_compr (test_list, 5)'의 결과가 무엇인지 말합니다. – Sebastian