Трудно сказать, не рассматривая код подробно, но я подозреваю, что разница заключается в векторизации pandas
и ориентации массива Numpy
.
pandas
организует данные в Series
, что может помочь с кэшированием и упростить поиск уникальных значений.Более того, операции в pandas
выполняются по необходимости, что означает, что вы получаете итератор с уникальными значениями рассматриваемого Series
.Такая операция обычно не требует дополнительной памяти (или, по крайней мере, не так много).
Мне не известны какие-либо подобные оптимизации в Numpy
.Это было бы намного сложнее и для массивов.Однако я не очень удивлен - Numpy
иногда оказывался довольно неэффективным, а pandas
постоянно совершенствовался.
Кроме того, pandas
, кажется, больше ориентирован на обработку больших данных, тогда как Numpy
для небольшихмасштабные числовые операции.