给出两个字母列表:
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
代表相应列表中的通用索引?
答案 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)
概率是所需概率。