Остановка условия путем сравнения строк в Numpy - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть следующий код:

def detector(my_array):
    cur = my_array[:,0]
    prev = my_array[:,0]
    for row in my_array:
         prev = cur
         cur = row[0]
         if (cur-prev)>1:
             print("found reverse shift!")

Входные данные - это массив numpy.

К сожалению, он возвращает мне ValueError: Истинное значение массива с более чем одним Элемент неоднозначен. Используйте a.any () или a.all ().

Но я сравниваю отдельные значения, а не массивы. Что не так с кодом?

Может быть, вы вообще знаете лучший способ достичь своей цели?

Примерный ввод:

np.array([
(1.1, 0.1), (1.5, 0.2), (1.4, 0.3), (2.1, 0.4), (2.2, 0.5), (-1.1, 0.1), (-0.1, 0.2),  (0.5, 0.3), (1.1, 0.4)
])

Ожидаемый результат: «Обнаружено смещение уровня» в строке 5 "

Предположим, что есть только один сдвиг уровня.

Тогда я буду использовать 5-ю строку, чтобы вырезать все ниже, поскольку мне не нужны эти данные.

К сожалению, это часть процесса ETL, и входные данные предоставляются мне в виде numpy массива.

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