2016-06-10 32 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

請告訴我們錯誤說什麼,什麼線(S)的原因吧。 –

+0

ValueError:無法使用泛型untis創建除NaT之外的NumPy日期時間。這個錯誤是行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