У меня есть файл csv, который содержит данные двух измерений светодиодов. В файле есть некоторые ошибки, которые дают огромные искры на графике. Я хочу найти эти места, где это происходит.
У меня есть этот код, который создает два массива, которые я рисую.
x625 = np.array(df['LED Group 625'].dropna(axis=0, how='all'))
x940 = np.array(df['LED Group 940'].dropna(axis=0, how='all'))






Я дам ответ с некоторыми искусственными данными, поскольку вы еще не разместили никаких данных.
Итак, после преобразования столбцов pandas в массив numpy вы можете сделать что-то вроде этого:
import numpy as np
# some random data. 100 lines and 1 column
x625 = np.random.rand(100,1)
# Assume that the maximum value in `x625` is a spark.
spark = x625.max()
# Find where these spark are in the `x625`
np.where(x625==spark)
#(array([64]), array([0]))
Вышеупомянутое означает, что значение, равное spark, находится на 64-й строке 0-го столбца.
Точно так же вы можете использовать np.where(x625 > any_number_here)
Если вместо местоположения вам нужно создать логическую маску, используйте это:
boolean_mask = (x625==spark)
# verify
np.where(boolean_mask)
# (array([64]), array([0]))
РЕДАКТИРОВАТЬ 1
Вы можете использовать numpy.diff(), чтобы получить различия всех элементов в списке (переменная).
diffs = np.diff(x625.ravel())
Это будет иметь в индексе 0 результаты element1-element0.
Если ваулы в diffs большие в определенном положении индекса, то в этом положении возникла искра.
я могу дать дополнительную информацию. У меня есть: df = pd.read_csv (путь), где путь — это путь к файлу. Итак, у меня есть набор данных, в котором у меня есть несколько искр. Поэтому я хочу реагировать, когда возникают эти искры. Это означает, что мне нужно проверить, является ли следующий элемент в массиве неестественно большим. если это имеет больше смысла. И сделайте это несколько раз в массиве
Это просто. см. мой РЕДАКТИРОВАТЬ 1 в моем ответе
можно добавить данные? проверьте также функцию
numpy.where