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)
添加回答
舉報