convert python numpy pandas datetime64

python convert to datetime64



¿Diferencia entre el tipo de datos ''datetime64[ns]'' y ''<M8[ns]''? (2)

He creado un TimeSeries en pandas:

In [346]: from datetime import datetime In [347]: dates = [datetime(2011, 1, 2), datetime(2011, 1, 5), datetime(2011, 1, 7), .....: datetime(2011, 1, 8), datetime(2011, 1, 10), datetime(2011, 1, 12)] In [348]: ts = Series(np.random.randn(6), index=dates) In [349]: ts Out[349]: 2011-01-02 0.690002 2011-01-05 1.001543 2011-01-07 -0.503087 2011-01-08 -0.622274 2011-01-10 -0.921169 2011-01-12 -0.726213

Sigo el ejemplo del libro ''Python for Data Analysis''.

En el siguiente párrafo, el autor verifica el tipo de índice:

In [353]: ts.index.dtype Out[353]: dtype(''datetime64[ns]'')

Cuando hago exactamente la misma operación en la consola me sale:

ts.index.dtype dtype(''<M8[ns]'')

¿Cuál es la diferencia entre los dos tipos ''datetime64[ns]'' y ''<M8[ns]'' ?

¿Y por qué obtengo un tipo diferente?


Si esto genera errores en la ejecución de su código, la actualización de pandas y numpy sincrónicamente resuelve el conflicto en el tipo de datos datetime.


datetime64[ns] es un dtype general, mientras que <M8[ns] es un dtype específico. Los tipos de datos generales se asignan a tipos específicos, pero pueden ser diferentes de una instalación de NumPy a la siguiente.

En una máquina cuyo orden de bytes es little endian, no hay diferencia entre np.dtype(''datetime64[ns]'') y np.dtype(''<M8[ns]'') :

In [6]: np.dtype(''datetime64[ns]'') == np.dtype(''<M8[ns]'') Out[6]: True

Sin embargo, en una máquina big endian, np.dtype(''datetime64[ns]'') sería igual a np.dtype(''>M8[ns]'') .

Por lo tanto, datetime64[ns] asigna a <M8[ns] o >M8[ns] según la naturaleza de la máquina.

Hay muchos otros ejemplos similares de mapeo de dtypes generales a dtypes específicos: int64 mapea a <i8 o >i8 , e int mapea a int32 o int64 dependiendo de la arquitectura de bits del sistema operativo y de cómo se compiló NumPy.

Aparentemente, la reproducción del dtype datetime64 ha cambiado desde el momento en que se escribió el libro para mostrar la naturaleza del dtype.