矩阵行相加超过一个马尔可夫转移矩阵

问题描述

数据 1:

import numpy as np
import pandas as pd


arr = np.array([0,1,2,3,4,6,7,5])
x = pd.Series([0,5,7]) 


print(arr)
print(type(arr))

[0 1 2 3 4 6 7 5]

数据 2:

arr = np.array([0,7])
x = pd.Series([0,7]) 


print(arr)
print(type(arr))

[0 1 2 3 4 6 7]

代码

m = [[0] * (np.max(arr) + 1) for _ in enumerate(np.arange(np.max(arr) + 1))]


for (i,j) in zip(x,x[1:]):
     m[i][j] += 1        

for row in m:
    s = sum(row)
    if s > 0:
        row[:] = [f / s for f in row]
        transition_matrix = m

 for i in transition_matrix:
     assert sum(i[:]) == 1,"Does not sums up to 1"

我希望代码能够处理上述两个数据,但是根据所提供的数据,我得到了不同的错误

产生以下错误

assert sum(i[:]) == 1,"Does not sums up to 1"
AssertionError: Does not sums up to 1

有时会出现以下错误

error-- m[i][j] += 1 IndexError: list index out of range '''

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)