2015-06-10 84 views
0

我有一個包含44,586行數據的文件。它被讀入使用pylab:如何使用命令'np.random.normal'通過單個輸入文件生成多個輸出文件?

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的新文件,它具有所有44586行我的數據在我希望的參數內隨機化。我的上述命令是否足以在每行數據上讀取並執行我想要的內容?

其中最複雜的部分是我要運行這1000次並生成1,000個.txt文件(1.txt,2.txt ... 1000.txt),每個文件運行完全相同的命令。

當我嘗試在腳本中運行循環時,我變得卡住了,因爲我仍然很缺乏經驗。即使開始運行,我也遇到了麻煩 - 我也很困惑如何處理用不同名稱保存文件。過去我使用過np.savetxt,但不知道如何使它執行此任務。

感謝您的幫助!

+1

爲什麼不用於循環 – The6thSense

+0

因爲我不知道如何應用它,這就是爲什麼我在這裏問。 – Vlad

+1

可以提供輸入文件的樣本 – The6thSense

回答

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) 
+0

謝謝你的回覆。我明天開始工作時會對此進行測試。它看起來很簡單,我希望我能夠自己想出它。 – Vlad

+0

工程就像一個魅力! – Vlad

相關問題