1 回答

TA贡献1951条经验 获得超3个赞
您可以使用 aCounter来计算转换发生的次数,然后计算每个转换的概率。
您可以使用zip组合列表的两个切片m- 一个删除了最后一个元素,另一个删除了第一个元素 - 以获得相邻元素的元组。zip(m[:-1], m[1:])这样做。然后你可以计算类似的元组 - 代表转换 - 与Counter:
from collections import Counter
m = [[213, 'vha'],
[342, 'gha'],
[523, 'xha'],
[121, 'gha'],
[812, 'gha'],
[612, 'vha'],
[123, 'gha']]
c = Counter([(x[1], y[1]) for x, y in zip(m[:-1], m[1:])])
probs = [(e, v / (len(m) - 1)) for e, v in c.items()]
for p in probs:
print(p)
输出
(('vha', 'gha'), 0.3333333333333333)
(('gha', 'xha'), 0.16666666666666666)
(('xha', 'gha'), 0.16666666666666666)
(('gha', 'gha'), 0.16666666666666666)
(('gha', 'vha'), 0.16666666666666666)
添加回答
举报