如何使用命令' np.random.normal'?使用单个输入文件生成多个输出文件?

时间:2015-06-10 06:31:29

标签: python loops numpy random normal-distribution

我有一个包含44,586行数据的文件。使用pylab读取它:

data = pl.loadtxt("20100101.txt")
density = data[:,0]

我需要运行像......

densities = np.random.normal(density, 30, 1)
np.savetxt('1.txt', np.vstack((densities.ravel())).T)

...并创建一个名为1.txt的新文件,该文件在我想要的参数中随机化了所有44,586行数据。我的上述命令是否足以在每行数据上读取并执行我想要的内容?

更复杂的部分 - 我希望运行1000次并生成1,000个.txt文件(1.txt,2.txt ... 1000.txt),每个文件运行完全相同的命令。

我在尝试在脚本中运行循环时陷入困境,因为我仍然非常缺乏经验。我很难开始按照我的意愿开始运行 - 我也很困惑如何处理用不同名称保存文件。我过去使用过np.savetxt,但不知道如何让它执行此任务。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

有两个小问题 - 第一个涉及如何选择文件的名称(可以使用pythons支持字符串连接来解决),第二个涉及np.random.normal - 它只允许一个大小参数当loc是标量时。

data = pl.loadtxt("20100101.txt") 
density = data[:,0]
for i in range(1, 1001):
    densities = np.random.normal(loc=density, scale=30)
    np.savetxt(str(i) + '.txt', densities)