Diziyi oluştururken bir zaman birimi parametresi de belirtirseniz işe yarayacaktır. Örneğin:
>>> 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]')
Ve sonra da gerektiği gibi değer atayabilirsiniz:
>>> 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 jenerik birimlerinin (yani hiçbir birimleri) ile tarihsaat izin vermez temsil edilecek. Birim parametre olmadan diziyi t
oluşturma ve sonra bu hatayı yükseltecek birinci elemanı t[0]
erişmeye çalışan:
İşte
ValueError: Cannot convert a NumPy datetime value other than NaT with generic units
, NumPy datetime temsil olması gereken birimler anlaması mümkün değildir. Tahmin etmek, takvim aylarının ve yıllarının değişen uzunlukları dikkate alındığında hatalı değerlere yol açabilir.
Bu nokta, belgelerde çok açık değildir ancak datetime page'dan toplanabilir ve kaynak kodunda here belirtilmiştir.
Evet, dün benim için açıkça çok geç oldu, çünkü bunu datetime sayfasında görmedim ... Spot on, Çok teşekkürler. – caliloo
Sorun değil - yardımcı olduguma memnun oldum –
Yardımın için teşekkürler! Dokümanlara da kör davranıyordum ...^_ ~ – Sardathrion