2016-09-01 173 views
2

我是編程新手。我想知道是否有人可以幫我創建一個csv文件來創建我在python中創建的數據。 我的數據是這樣的如何創建在python中創建的數據的csv文件

import numpy as np 
print np.__version__ 



a = 0.75 + (1.25 - 0.75)*np.random.sample(10000) 
print a 
b = 8 + (12 - 8)*np.random.sample(10000) 
print b 
c = -12 + 2*np.random.sample(10000) 
print c 
x0 = (-b - np.sqrt(b**2 - (4*a*c)))/(2*a) 
print x0 

我期待創建CSV文件格式是1列各爲A,B,C和X0(見下面的例子)

enter image description here

你專家援助將得到高度讚賞

在此先感謝:-)

編輯1 >> 我NPUT代碼:

import numpy as np 
print np.__version__ 
import csv 




a = 0.75 + (1.25 - 0.75)*np.random.sample(10000) 
##print a 
b = 8 + (12 - 8)*np.random.sample(10000) 
##print b 
c = -12 + 2*np.random.sample(10000) 
##print c 
x0 = (-b - np.sqrt(b**2 - (4*a*c)))/(2*a) 
##print x0 


with open("file.csv",'w') as f: 
    f.write('a,b,c,x0\n') 
    for val in a,b,c,x0: 
     print val 
     f.write(','.join(map(str,[a,b,c,x0]))+ '\n') 

輸出 enter image description here

我能夠產生使用用於環路命令的數據(見下文圖)。 csv格式不按預期輸出。

enter image description here

回答

1

有四個系列,你需要遍歷的值。每一次迭代都應該對應於每一行寫入的新行。

試試這個:

import numpy as np 
print np.__version__ 
import csv 


a_range = 0.75 + (1.25 - 0.75)*np.random.sample(10000) 
b_range = 8 + (12 - 8)*np.random.sample(10000) 
c_range = -12 + 2*np.random.sample(10000) 
x0_range = (-b_range - np.sqrt(b_range**2 - (4*a_range*c_range)))/(2*a_range) 


with open("file.csv",'w') as f: 
    f.write('a,b,c,x0\n') 
    for a,b,c,x0 in zip(a_range, b_range, c_range, x0_range): 
     f.write(','.join(map(str,[a,b,c,x0]))+ '\n') 
+1

正如我所期待的那樣工作!感謝您的協助@chefarov :-) –

2
with open("file.csv",'w') as f: 
    f.write('a,b,c,x0\n') 
    --forloop where you generate a,b,c,x0: 
    f.write(','.join(map(str,[a,b,c,x0])) + '\n') 
+0

正確的。如果他想要看到他做的標題,那麼在循環之前還要加上'f.write('a,b,c,x0 \ n')'for循環 – chefarov

+1

@chefarov。謝謝。 – bravosierra99

+0

Apreciate您對這個bravosierra99和@chefarov的幫助。你可以舉一個如何編寫for循環來生成數據的例子嗎? –

相關問題