Учитывая массив numpy, я хотел бы проверить, является ли он datetime64 или просто массивом numeri c. Я использую это в некоторых функциях построения графиков, которые принимают оба варианта, однако я не могу сделать np.isnan
или np.isinf
на datetime64 и не могу сделать np.isnat
на массивах numeri c, поэтому мне нужно знать который есть что.
Проблема в том, что я получаю разные ответы в зависимости от того, как был создан исходный массив.
>>> import datetime
>>> import numpy as np
>>> x = np.datetime64('now', 'us')
>>> y = np.array([datetime.datetime.now()], dtype='datetime64[us]')
>>> isinstance(x, np.datetime64)
True
>>> isinstance(y, np.datetime64)
False
Лучшее, что я придумал, это:
>>> str(x.dtype).startswith('datetime64')
True
>>> str(y.dtype).startswith('datetime64')
True
Это лучший вариант или есть способ лучше?