Почему pd.unique () быстрее, чем np.unique ()? - PullRequest
0 голосов
/ 15 ноября 2018

Я попытался сравнить два, один из них pandas.unique (), а другой numpy.unique (), и я обнаружил, что последний действительно превосходит первый.
Я не уверен, является ли превосходительство линейным или нет.

Может кто-нибудь сказать, почему такая разница существует в отношении реализации кода? В каком случае я должен использовать какой?

Заранее спасибо. Я новичок в Stackoverflow, поэтому извините, если я спросил слишком много.

1 Ответ

0 голосов
/ 15 ноября 2018

Трудно сказать, не рассматривая код подробно, но я подозреваю, что разница заключается в векторизации pandas и ориентации массива Numpy.

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

Мне не известны какие-либо подобные оптимизации в Numpy.Это было бы намного сложнее и для массивов.Однако я не очень удивлен - Numpy иногда оказывался довольно неэффективным, а pandas постоянно совершенствовался.

Кроме того, pandas, кажется, больше ориентирован на обработку больших данных, тогда как Numpy для небольшихмасштабные числовые операции.

...