2016-06-10 2 views
2

У меня есть текстовый файл:Python (SciPy) время импорта из текстового файла

2010-05-16 
2010-09-26 
2011-04-28 

Каждая строка является строкой: YYYY-MM-dd

Моя цель состоит в том, чтобы прочитать этот текстовый файл и записать эту информацию массив.

import scipy as sp 
x=sp.empty(200,ftype=sp.datetime64)  
file=open(place,'r') 
for p in file: 
    x[i]=p 

Но это не сработает. Я вижу «ошибку». Как я могу решить эту задачу? Я знаю, что могу использовать Panda, но мне нужно написать это в scipy массив.

+1

Пожалуйста, сообщите нам, что говорит об ошибке и какие строки ее вызывают. –

+0

ValueError: Невозможно создать дату и время NumPy, отличное от NaT, с общим unis. Эта ошибка заключается в строке x [i] = p – vjg

ответ

1

Попробуйте это:

import numpy as np 


x = np.empty(200, dtype='datetime64[D]') 

with open(place, 'r') as f: 
    for i, date in enumerate(f): 
     x[i] = date.strip() 

Во-первых, это dtype, не ftype. Затем нам нужно использовать datetime64[D], поскольку это всего лишь дата, а не дата и время. Затем date имеет новую строку в конце, что приводит к ошибке синтаксического анализа (strip() исправляет это). Вы также можете использовать np.zeros() вместо np.empty().

Вы также можете получить доступ к этим методам с помощью SciPy, но они технически являются частью NumPy, поэтому просто используйте import numpy as np.

+0

Будет, большое спасибо. Это работает. – vjg

+0

Отлично, без проблем, рад помочь! :) Если это решит вашу проблему, поставьте отметку в квадрате в квадрате справа от вопроса, чтобы добавить комментарий к вопросу. – Will

Смежные вопросы