0
0 комментариев

Есть такой numpy массив:

row = [ 538  539  540  541  542  644  662  663  664  665  768 1152 1205 1243 1244
        1258 1275 1382 1399 1506 1523 1630]

Числа в массиве всегда идут похожим образом, то есть в порядке возрастания.

Каким образом быстрее всего вытащить из массива два числа n, которые соответствуют условию n1 < a < n2? К примеру, у меня есть число a = 960. В этом случае нужно вытащить из массива числа 768 и 1152, так как 768 < 960 < 1152.

Сейчас я просто делю массив на две части: все числа, которые меньше a и все, которые больше. Потом вытаскиваю из этих частей последний и первый элемент соответственно.

left = row[row < a][-1]
right = row[row > a][0]

Хотелось бы узнать самый подходящий способ и почему именно он быстрее всего. Спасибо.


Добавить комментарий