pandas 破裂指数是0还是1?

0qx6xfy6  于 2023-03-06  发布在  其他
关注(0)|答案(1)|浏览(132)

我使用ruptures模块来搜索趋势变化等。它返回一个比日期长度大1的索引值,看起来像是从1而不是0开始索引,或者是在最后一个值上加1。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt  # for display purposes
import ruptures as rpt  # our package

n_samples, n_dims, sigma = 1000, 3, 2
n_bkps = 4  # number of breakpoints
signal, bkps = rpt.pw_constant(n_samples, n_dims, n_bkps, noise_std=sigma)

print(len(singal))

bkps = [217, 424, 629, 810, 1000]

我不明白,我只需要删除最后一个值,还是需要为这里的所有值设置-1?

lqfhib0f

lqfhib0f1#

据我所知,bkps表示断点之后的点的索引,如果你有一个范围索引,这意味着断点在这个点和前一个点之间。
实际上,如果我们手动绘制断点,我们需要将x值减去0.5,以使其与图形对齐:

n_samples, n_dims, sigma = 100, 2, 2
n_bkps = 4  # number of breakpoints
signal, bkps = rpt.pw_constant(n_samples, n_dims, n_bkps, noise_std=sigma, seed=0)

(f, axes) = rpt.display(signal, bkps)

for x in bkps:
    for ax in axes:
        ax.axvline(x-0.5, ls=':', c='k')

输出:

相关问题