Вот причина: numpy.unique
сначала сгладит массив. Из документации:
Входной массив. Если ось не указана, она будет сглажена, если она еще не является 1-D.
Итак, вам нужно подумать, по какой оси вы хотите, чтобы элементы были уникальными (для NumPy вашсписки кортежей будут выглядеть как двумерный массив);затем используйте правильное ключевое слово axis
. К сожалению, вы быстро обнаружите, что это тоже не сработает, поскольку элементы рассматриваются как объект (поскольку NumPy пытается смешать целые числа и даты и времени в один тип объекта), что в NumPy не позволяет проводить сравнение.
Но так как вы используете список кортежей (там нет ничего NumPy), просто используйте set()
:
>>> from datetime import datetime
>>>
>>> d = datetime.now()
>>> a = [(1, d), (2, d), (3, d), (3, d)]
>>> set(a)
{(2, datetime.datetime(2019, 11, 1, 17, 15, 38, 578611)), (1, datetime.datetime(2019, 11, 1, 17, 15, 38, 578611)), (3, datetime.datetime(2019, 11, 1, 17, 15, 38, 578611))}
Обратите внимание, что набор естественно неупорядочен.