亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有辦法找到矩陣中不同值的概率

有沒有辦法找到矩陣中不同值的概率

九州編程 2021-08-14 12:52:07
我以為會有一個庫可以幫助我完成這項任務,而不是編寫多行代碼。我嘗試從與我的問題相關的書籍中找到一些解決方案,但找不到任何解決方案。我最近讀過的一本關于概率的書:José Unpingco 用于概率、統計和機器學習的 Python任務是我有一個像下面這樣的矩陣0    1213 vha342 gha523 xha121 gha812 gha612 vha123 gha我希望程序來計算,比如移動,步驟vha到gha第二排。從gha到xha第三排。如果重復任何步驟,它將添加到上一步。例如vha,gha在第一行和第二行中的to在矩陣的末尾重復。所需的輸出將是similar steps added together/ total number of rows-1。在第一種情況下vha,gha概率 = 2/7-1期望輸出vha to gha prob = 0.3gha to xha prob = 0.16xha to gha prob = 0.16gha to gha prob = 0.16gha to vha prob = 0.16Total probs = 1
查看完整描述

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)


查看完整回答
反對 回復 2021-08-14
  • 1 回答
  • 0 關注
  • 159 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號