Python 如何计算两个序列的联合概率?
给出两份信函清单:Python 如何计算两个序列的联合概率?,python,probability,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表示相应列表中的通用索引?使用您给出的数组,您可以使用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 on
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
表示相应列表中的通用索引?使用您给出的数组,您可以使用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)
其中prob是所需的概率。因此x和y可以有英文字母表中的任何大写字母?在不进一步了解列表数学属性的情况下,您只需遍历所有可能的“i”,计算请求的字母组合出现的频率,并将其除以可能的“i”值。