Есть ли интересный алгоритм за np.searchsorted ()? - PullRequest
1 голос
/ 06 ноября 2019

Функция searchsorted () очень полезна для организации данных в numpy и особенно подходит для больших массивов.

Почему это так быстро? Просто (похоже на векторизацию кода) мы можем запустить код непосредственно в «C». Но возможно ли, что я могу получить нечто похожее с более базовыми функциями внутри NumPy? Могу ли я написать (что люди, использующие Matlab) «векторизованный код» для выполнения операции поиска отсортированы?

1 Ответ

1 голос
/ 06 ноября 2019

Spyder (консоль IPython) и линейная магия полезны ...

np.searchsorted??
Signature: np.searchsorted(a, v, side='left', sorter=None)
Source:   
@array_function_dispatch(_searchsorted_dispatcher)
def searchsorted(a, v, side='left', sorter=None):
    """
    Find indices where elements should be inserted to maintain order.
... huge snip
    This function uses the same algorithm as the builtin python `bisect.bisect_left`
    (``side='left'``) and `bisect.bisect_right` (``side='right'``) functions,
    which is also vectorized in the `v` argument.
... ditto    
    """
    return _wrapfunc(a, 'searchsorted', v, side=side, sorter=sorter)
File:      c:\...source path...\lib\site-packages\numpy\core\fromnumeric.py
Type:      function

Таким образом, поиск будет на стороне питона для деления пополам, если требуются фактические детали алгоритма.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...