Ответ 1
datetime64[ns]
является общим типом, а <M8[ns]
является конкретным типом. Общие типы dtypes сопоставляются с определенными типами данных, но могут отличаться от одной установки NumPy к следующей.
На машине, порядок байтов которой немного велик, нет никакой разницы между
np.dtype('datetime64[ns]')
и np.dtype('<M8[ns]')
:
In [6]: np.dtype('datetime64[ns]') == np.dtype('<M8[ns]')
Out[6]: True
Однако на большой конечной машине np.dtype('datetime64[ns]')
будет равно np.dtype('>M8[ns]')
.
So datetime64[ns]
отображает либо <M8[ns]
, либо >M8[ns]
в зависимости от конечности машины.
Существует много других подобных примеров общего сопоставления типов dtypes для конкретных типов:
int64
отображается в <i8
или >i8
, а int
отображает либо int32
, либо int64
в зависимости от архитектуры битов ОС и того, как был скомпилирован NumPy.
По-видимому, представление типа datetime64 изменилось с момента написания книги, чтобы показать конечность dtype.