I know how to use numpy.savetxt to write an array to a file. How can I write multiple arrays to the same file?
Essentially I want to do math to a column of numbers, and then replace the old column with the modified numbers. I read the easiest way to do this is to write a new file completely, put the modified numbers in, and just 'copy and paste' the other numbers in the file.
Any help is appreciated.
Thanks!
Answering a very old post for my own use. I've used the following to write out two 1D arrays of same size as CSV.
import numpy as np
x = [1, 2, 3]
y = [4, 5, 6]
zipped = zip(x, y)
# >>> [(1, 4), (2, 5), (3, 6)]
# Save the array back to the file
np.savetxt('z.csv', zipped, fmt='%i,%i')
If you're wanting to write multiple arrays to a file for later use, Look into numpy.savez.
However, from your description, it sounds like you're wanting to do something with a particular column of a delimited text file.
In that case, just load the entire thing in and operate on just the column you need to.
E.g.
import numpy as np
data = np.loadtxt('test.txt')
# Multiply the 4th column by 5
data[:,3] *= 5
# Do something more complicated to the 2nd column
data[:,1] = np.cos(data[:,1])
# Save the array back to the file
np.savetxt('test.txt', data)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With