2014-12-14 4 views
5

일부 datetime 값으로 채워질 numpy 배열을 만들려고합니다. 나는 제대로 작동하지 않는 것 같아. 제발 도와 줄 수있어?numpy datetime64 배열을 채울 수 없습니다.

import numpy as np 
t = np.empty(3,dtype='datetime64') 
t 

나는 TypeError: Invalid datetime unit "generic" in metadata이됩니다. 같은 내가하려고하면 :

import numpy as np 
t = np.empty(3,dtype='datetime64') 
t[0] = np.datetime64('2014-12-12 20:20:20') 

내가 얻을 :

TypeError : Cannot cast numpy timedelta64 scalar from metadata [m] to according to the rule 'same_kind'.

감사를 사전에 도움을!

답변

5

배열을 만들 때 시간 단위 매개 변수를 지정하는 경우에도 작동합니다. 예를 들면 :

>>> t = np.empty(3, dtype='datetime64[s]') 
>>> t 
array(['1970-01-01T00:00:00+0000', '1970-01-01T00:00:00+0000', 
     '1970-01-01T00:00:00+0000'], dtype='datetime64[s]') 

을 그리고 당신은 또한 필요에 따라 값을 지정할 수 있습니다 :

>>> t[0] = np.datetime64('2014-12-12 20:20:20') 
>>> t 
array(['2014-12-12T20:20:20+0000', '1970-01-01T00:00:00+0000', 
     '1970-01-01T00:00:00+0000'], dtype='datetime64[s]') 

NumPy와 제네릭 단위 (즉, 어떤 단위)와 날짜 시간을 허용하지 않습니다 표현 될 수 있습니다. 단위 매개 변수없이 배열 t를 생성하고이 오류가 발생합니다 첫 번째 요소 t[0]에 액세스하려고하는 것은 :

여기
ValueError: Cannot convert a NumPy datetime value other than NaT with generic units 

, NumPy와는 날짜의 표현이 있어야 어떤 단위를 추론 할 수 없습니다. 추측은 달력 달과 년의 다양한 길이를 감안할 때 잘못된 값으로 이어질 수 있습니다.

이 점은 설명서에는 명확하지 않지만 datetime page에서 수집 할 수 있으며 소스 코드 here에 기록되어 있습니다.

+1

어제, 어제 너무 명확하지 않았습니다. 왜냐하면 나는 datetime 페이지에서 그걸 보지 못했기 때문입니다 ... Spot on, Thanks a lot. – caliloo

+0

문제 없습니다. 도움이 되었기 때문에 기꺼이 –

+0

도움에 감사드립니다! 나는 워드 프로세서에 대해서도 눈이 멀었습니다 ...^_ ~ – Sardathrion

관련 문제