통계 작업을하고 있는데 평균을 계산할 난수가 많이 있습니다. 생성자를 계산해야하기 때문에 생성자와 작업하고 싶습니다. 의미, 그래서 번호를 저장할 필요가 없습니다.파이썬에서 생성자에 대한 평균을 계산합니다.
문제는 생성기를 전달할 때 numpy.mean이 중단된다는 것입니다. 내가 원하는 것을하기위한 간단한 함수를 작성할 수는 있지만, 이것을하기위한 적절한 기본 제공 방법이 있는지 궁금합니다.
"합계 (값)/len (값)"이라고 말할 수 있으면 좋겠지 만 len은 유전자 변형기에서 작동하지 않으며 이미 소비 된 값을 합친 것입니다.
import numpy
def my_mean(values):
n = 0
Sum = 0.0
try:
while True:
Sum += next(values)
n += 1
except StopIteration: pass
return float(Sum)/n
X = [k for k in range(1,7)]
Y = (k for k in range(1,7))
print numpy.mean(X)
print my_mean(Y)
이 모두 같은, 올바른 대답을 my_mean 나열 작동하지 않습니다 구입하고 numpy.mean은 발전기 작동하지 않습니다
여기 예입니다.
저는 발전기로 작업한다는 아이디어를 정말 좋아하지만, 이와 같은 세부 사항은 상황을 망칠 수 있습니다.
당신은 당신의 발전기 생산 얼마나 많은 난수 알고있는 것을, 당신은하지 않을까요? –
@Sven Marnach : 발전기가 파일을 읽는다고 가정합니다. – Jimmy
정말로 데이터를 저장하고 싶지 않고 (더 느린'sum' 함수를 구현하지 않는다면) 계산 생성기를 생성하고 다음과 같이 호출 할 수 있습니다 :'co = countingGen(); 평균 = 합계 (co (data))/co.getCount()' –