Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何计算两个序列的联合概率?_Python_Probability - Fatal编程技术网

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”值。