вы можете использовать генератор:
def pre_process(dict_sequence):
for d in dict_sequence:
d['time'] = date2num(datetime.datetime.strptime(d['time'],"%d/%m/%y %H:%M:%S" ))
yield d
Теперь вы можете обработать свой CSV:
for d in pre_process(csv.DictReader(open('MyFile.csv'))):
process(d)
преимущество этого решения в том, что оно не копирует потенциально большие последовательности.
Edit:
То есть содержимое файла в массиве numpy?
reader = csv.DictReader(open('MyFile.csv'))
#you might want to get rid of the intermediate list if the file is really big.
data = numpy.array(list(d.values() for d in pre_process(reader)))
Теперь у вас есть хороший большой массив, который позволяет выполнять все виды операций. Вы хотите, чтобы только первый столбец получил матрицу 600000x1:
data[:,0] # assuming time is the first column