문제
나는 프로그램 작성 시뮬레이션하는 실제 데이터는 폴링과 같은 회사 갤럽 또는 라스무센 게시일:www.gallup.com 고 www.rassmussenreports.com
내가 사용하여 무력 방법,컴퓨터 생성하는 일부를 임의의 일상 투표 데이터를 계산하 세 개의 하루 평균하십시오 의 평균 랜덤 데이터와 일치 여론 조사 숫자입니다.(대부분의 기업 조사 숫자를 세 하루 평균)
현재,그것은 잘 작동 중 하나에 대한 반복,그러나 내 목적은 그것을 생산하는 가장 일반적인 시뮬레이션과 일치하는 평균 투표이다.이때는 코드의 변경에서 어디서나 1 1000 번 반복합니다.
이 내 문제입니다.의 끝에서 테스트가 배열이 하나의 변수는 다음과 같이 나타납니다.
[40.1, 39.4, 56.7, 60.0, 20.0 ..... 19.0]
이 프로그램은 현재 생산 중 하나는 배열에 대한 각 정확한 시뮬레이션입니다. 저장할 수 있는 각각의 배열이 하나의 변수이지만,그때가 프로그램을 생성할 수 있는 1~1000 변수에 따라서 얼마나 많은 반복을 요청했는데!?
어떻게 이것을 피?내가 알고 있는 지능형 방법 이 필요로하지 않는 프로그램을 생성을 저장할 변수 배열에 따라 얼마나 많은 시뮬레이션합니다.
코드 테스트를 위해 매케인:
test = []
while x < 5:
test = round(100*random.random())
mctest.append(test)
x = x +1
mctestavg = (mctest[0] + mctest[1] + mctest[2])/3
#mcavg is real data
if mctestavg == mcavg[2]:
mcwork = mctest
어떻게 반복을 만들지 않고 여러 mcwork vars?
해결책
는 것 같은 것이 일하는가?
from random import randint
mcworks = []
for n in xrange(NUM_ITERATIONS):
mctest = [randint(0, 100) for i in xrange(5)]
if sum(mctest[:3])/3 == mcavg[2]:
mcworks.append(mctest) # mcavg is real data
결국,당신은 왼쪽으로 목록의 유효한 mctest
목록입니다.
내가 무엇을 변경:
다른 팁
에 대해 이야기하고 있는 이것을 하고 있는가?
>>> a = [ ['a', 'b'], ['c', 'd'] ]
>>> a[1]
['c', 'd']
>>> a[1][1]
'd'
목록에서 파이썬은 포함 모든 종류의 개체--내가 이해하는 경우 올바르게 질문합니다 list
의 list
s 일을 할 필요가 있습니까?이 같은 것(수정 기능 generate_poll_data()
을 생성하는 데이터:
data = []
for in xrange(num_iterations):
data.append(generate_poll_data())
그런 다음 data[n]
될 것입니다 목록의 데이터 (n-1)
일 실행합니다.
기 때문에 당신은 생각 변수, 수도 있습을 선호 사전 통해서 목록:
data = {}
data['a'] = [generate_poll_data()]
data['b'] = [generate_poll_data()]
etc.
나는 강하게 사용을 고려 NumPy 니다.당신이 얻을 효율적으 N-차원 배열할 수 있는 프로세스를 쉽고 빠르게.
깔끔 그것을 할 수있는 방법을 사용하는 것의 목록을 나열과 조합 판다.다음할 수 있을 만드 3-하루 평균.이것은 쉽게 검색을 통한 결과가 실제의 것으로 다른 열,그리고 사용하는 이 함수를 찾는 사람이 일치합니다.
rand_vals = [randint(0, 100) for i in range(5))]
df = pd.DataFrame(data=rand_vals, columns=['generated data'])
df['3 day avg'] = df['generated data'].rolling(3).mean()
df['mcavg'] = mcavg # the list of real data
# Extract the resulting list of values
res = df.loc[df['3 day avg'] == df['mcavg']]['3 day avg'].values
이것은 또한 깔끔한 경우에 당신을 사용하려는 동일한 임의의 값이 다양한 설문 조사/사람,그냥 다른 추가 열과 함께 그들의 실제 값과 동일한 검색을 수행한다.