Разбить массив на неубывающие массивы - PullRequest
0 голосов
/ 17 марта 2019

Я пытаюсь разбить данный массив на неубывающие массивы без циклов for или используя np.diff. Интересно, можно ли это сделать с помощью np.where, но не представляю, как сделать это без зацикливания.

1 Ответ

2 голосов
/ 17 марта 2019

Вот способ использования numpy:

def split_increasing(x):
    # Check if following value is greater
    ix = np.greater(a[:-1], a[1:])
    # Use the indices where the above is True
    # to split the array
    return np.split(a, np.flatnonzero(ix)+1)

Давайте проверим случайный массив:

a = np.random.randint(1,20,10)
# array([12, 15,  3,  7, 18, 18,  9, 16, 15, 19])
split_increasing(a)

Вывод

[array([12, 15]), array([ 3,  7, 18, 18]), array([ 9, 16]), array([15, 19])]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...