Этот вопрос является расширением / альтернативным методом при попытке решить этот вопрос ( Извлечение границ плотных областей 1 с в огромном списке 1 с и 0 с )
У меня огромныйсписок из 1 и 0 [общая длина = 53820].
Пример того, как выглядит список - [0,1,1,1,1,1,1,1,1,0,0,0, 1,1,0,0,0,0,0,0,1,1 ...........]
Визуализация приведена ниже.
ось x : индекс элемента (от 0 до 53820)
ось y : значение по этому индексу (то есть 1 или0)
Черные линии вокруг пиков (обозначающие 1) - это плотные области, граничные значения (начальные и конечные значения по оси X) которых я хочу извлечь.
График ввода -> (http://i67.tinypic.com/2h5jq5e.png) ![The plots](https://i.stack.imgur.com/8aSCQ.png)
Я провел оценку плотности ядра для индексов (ось x) и список1 и 0 (ось Y), и я получаю график, подобный следующему:
KDE Plot -> (https://i.stack.imgur.com/psvp2.png) ![The plots](https://i.stack.imgur.com/3hJUV.png)
Язаинтересованы в извлечении значений оси x (порядковый номер) на оси y = 1. т.е. я хотел бы извлечь границы (начальные и конечные значения), где 1s являются наиболее плотными ( Обозначается чернымлинии на графике )
Код этого кода следующий:
path='./'+csv_path+'.csv'
df = pd.read_csv(path)
mylist = df['Values'] # The huge list with 1s and 0s
indexes = list(range(len(mylist))) # The corresponding list of indexes of mylist
ax = sns.jointplot(x=indexes, y=mylist, kind="kde")
plt.show()
Я распечатал оси, которые sns.distplot возвращает для построения, что даетЯ <seaborn.axisgrid.JointGrid object at 0x7f09d37d5cf8>
Но я не могу извлечь граничные значения из этого.
Я также смотрел на (https://matplotlib.org/api/collections_api.html), но не мог понять, как использовать его для моей проблемы здесь.
Любая помощь будет оценена:)