I have a 3000x300 matrix file (float). when I read and convert to float, I am getting float64, which is default in python. I tried numpy and map() to convert it to float32() but they both seem very inefficient.
my code:
x = open(readFrom, 'r').readlines()
y = [[float(i) for i in s.split()] for s in x]
time taken: 0:00:00.996000
numpy implementation:
x = open(readFrom, 'r').readlines()
y = [[np.float32(i) for i in s.split()] for s in x]
time taken: 0:00:06.093000
map()
x = open(readFrom, 'r').readlines()
y = [map(np.float32, s.split()) for s in x]
time taken: 0:00:05.474000
How can I convert to float32 very efficiently?
Thank you.
Update:
numpy.loadtxt()
or numpy.genfromtxt()
not working (giving memory error) for huge file. I have posted a question related to that and the approach I presented here works well for huge matrix file (50,000x5000). here is the question