【发布时间】:2016-08-01 19:36:36
【问题描述】:
目前正在学习 Python,对 Numpy 和 Panda 还很陌生
我已经拼凑了一个带有范围的随机生成器。它使用 Numpy,我无法隔离每个单独的结果来计算随机范围内的迭代次数。
目标:计算“随机 >= 1000”的迭代次数,然后将 1 加到与迭代计数相关的相应单元格中。非常基本的例子:
#Random generator begins... these are first four random generations
Randomiteration0 = 175994 (Random >= 1000)
Randomiteration1 = 1199 (Random >= 1000)
Randomiteration2 = 873399 (Random >= 1000)
Randomiteration3 = 322 (Random < 1000)
#used to +1 to the fourth row of column A in CSV
finalIterationTally = 4
#total times random < 1000 throughout entire session. Placed in cell B1
hits = 1
#Rinse and repeat to custom set generations quantity...
(然后在电子表格中的逻辑是 +1 到 A4。如果迭代计数是 7,那么 +1 到 A7,等等。所以基本上,我正在测量距离和频率之间的距离每个“命中”)
我当前的代码包含一个 CSV 导出部分。我不再需要导出每个单独的随机结果。我只需要导出每次命中之间每次迭代距离的频率。这就是我难过的地方。
干杯
import pandas as pd
import numpy as np
#set random generation quantity
generations=int(input("How many generations?\n###:"))
#random range and generator
choices = range(1, 100000)
samples = np.random.choice(choices, size=generations)
#create new column in excel
my_break = 1000000
if generations > my_break:
n_empty = my_break - generations % my_break
samples = np.append(samples, [np.nan] * n_empty).reshape((-1, my_break)).T
#export results to CSV
(pd.DataFrame(samples)
.to_csv('eval_test.csv', index=False, header=False))
#left uncommented if wanting to test 10 generations or so
print (samples)
【问题讨论】:
标签: python pandas numpy random range