如何计算两个序列的联合概率?

时间:2019-12-25 19:15:36

标签: python probability

给出两个字母列表:

x = [A, B, D, A, D, D, ...]
y = [D, F, C, C, B, B, ...]

如何计算概率p(x_i = B, x_(i+1) = D, y_i = F),其中i代表相应列表中的通用索引?

1 个答案:

答案 0 :(得分:1)

使用给定的数组,可以方便地使用numpy数组,

import numpy as np
N=len(x)
xi=(np.array(x)=='B').astype(int)
xip=np.roll((np.array(x)=='D').astype(int),-1) # shift array one forward, and convert boolean to integer (True=1, False=0)
yi=(np.array(y)=='F').astype(int)
prob=(xi+xip+yi==3).astype(int)[0:N-1].sum()/(N-1)

概率是所需概率。