У меня есть следующий код:
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 массива.