Python 如何删除部分数据源?

Python 如何删除部分数据源?,python,bokeh,Python,Bokeh,我希望通过修补从数据源中删除一个或多个值,即不通过重新发送整个数据。我可以用薄片修补。例如,如果要删除 data = dict(x=list(range(1,5)), y=list(range(6,10))) source = ColumnDataSource(data) print(source.data) {'x':[1,2,3,4],'y':[6,7,8,9]} 我可以用 source.patch(dict(x=[(slice(0,2),[2])], y=[(slice(0,2),[7]

我希望通过修补从数据源中删除一个或多个值,即不通过重新发送整个数据。我可以用薄片修补。例如,如果要删除

data = dict(x=list(range(1,5)), y=list(range(6,10)))
source = ColumnDataSource(data)
print(source.data)
{'x':[1,2,3,4],'y':[6,7,8,9]}

我可以用

source.patch(dict(x=[(slice(0,2),[2])], y=[(slice(0,2),[7])]))
print(source.data)
{'x':[2,3,4],'y':[7,8,9]}


这要求我根据要删除的位置知道上一个或下一个值。如何从所有列中删除一个索引/一系列索引?这是推荐的方法吗?

补丁方法只能用于将现有值更新为新值,即不能用于更改列的大小。事实上,如果新数据小于切片长度,那么上面的内容应该会引发
运行时错误
,我很惊讶它不会

除了重新发送整个列外,无法从CDS列中删除数据。这是因为在JavaScript端,浏览器中的类型化数组不支持所有在Numpy中Python端可用的奇特的切片和索引,等等


根据您的具体情况,可能会有或多或少的黑客解决方法,例如,也许您可以将要“删除”的值修补为NAN。但这并不是总能“起作用”的东西(例如,它的线条会表现得很糟糕)。

有趣且出乎意料的答案。我还没有用bokeh服务器测试它。