此问题是尝试解决此问题(Extracting boundaries of dense regions of 1s in a huge list of 1s and 0s)时的扩展/替代方法
我有一个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)
我已经完成了索引(x轴)和1s和0s列表(y轴)的内核密度估计,并获得了如下图:
KDE图-> (https://i.stack.imgur.com/psvp2.png)
我对提取y轴= 1上的x轴(索引编号)的值感兴趣。 即我想提取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),但是在这里找不到解决方法。
任何帮助将不胜感激:)