Reputation: 565
I am new to programming. I was wondering if anyone can help me create a csv file for the data that I created in python. My data looks like this
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
The csv file format I am looking to create is 1 column each for a,b,c and x0 (see example below)
Your expert assistance will be highly appreciated
Thanks in advance :-)
Edit 1>> Input code:
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')
I am being able to generate the data using for loop command (see pic below). The csv format is not outputting as expected.
Upvotes: 2
Views: 165
Reputation: 2845
There are four range of values you need to iterate over. Every iteration should correspond to each new line written.
Try this:
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')
Upvotes: 1
Reputation: 1371
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')
Upvotes: 2