Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中实现Viterbi算法时出错_Python_Algorithm_Machine Learning_Data Science - Fatal编程技术网

在python中实现Viterbi算法时出错

在python中实现Viterbi算法时出错,python,algorithm,machine-learning,data-science,Python,Algorithm,Machine Learning,Data Science,我是数据科学新手,尝试从github运行Viterbi代码,但当我将参数传递给函数时,它显示错误 只有整数、片(:)、省略号(…)、numpy.newaxis(None)和整数或布尔数组是有效的索引 Viterbi算法的My函数 def Viterbi(pi, a, b, obs): nStates = np.shape(b)[0] T = np.shape(obs)[0] path = np.zeros(T) delta = np.zeros((nStates,

我是数据科学新手,尝试从github运行Viterbi代码,但当我将参数传递给函数时,它显示错误 只有整数、片(
)、省略号(
)、numpy.newaxis(
None
)和整数或布尔数组是有效的索引

Viterbi算法的My函数

def Viterbi(pi, a, b, obs):
    nStates = np.shape(b)[0]
    T = np.shape(obs)[0]
    path = np.zeros(T)
    delta = np.zeros((nStates, T))
    phi = np.zeros((nStates, T))
    delta[:, 0] = pi * b[:, obs[0]]
    phi[:, 0] = 0
    for t in range(1,T):
        for s in range(nStates):
            delta[s, t] = np.max(delta[:, t-1] * a[:, s]) * b[s, obs[t]]
            phi[s, t] = np.argmax(delta[:, t-1] * a[:, s])
   path[T-1] = np.argmax(delta[:,T-1])
   for t in range(T-2, -1, -1):
       path[t] = phi[path[t+1], t+1]
   return path, delta, phi
我将函数参数作为numpy.ndarray传递。 有人能提出这个错误是什么以及如何解决这个问题吗

错误截图

连接我从那里得到代码的链接

你能添加你有错误的参数吗?算法看起来不错。似乎您正在传递的数据不符合函数的逻辑。您是否检查了该代码的文档?您正在将路径[t+1]作为行选择索引传递到
phi
。因此,您可以检查路径[t+1]的形状吗?它是一维的吗?