python - 如何计算两个序列的联合概率?
问题描述
给定两个字母列表:
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 是所需的概率。
推荐阅读
- material-ui - 在 TablePagination 上反应 Material-UI labelDisplayedRows
- python - 将 pptx 转换为 PNG
- java - 尝试将实例变量初始化为具有直径和颜色的形状实例
- python - 如何沿轴在中点分割数组?(实验室色彩空间离散化)
- algorithm - 给定长度的表达式数量
- c# - 整数数组 - 当前上下文中不存在
- wordpress - 为什么与 nextjs 视图源不对齐,就像在 wordpress 中一样
- listview - Xamarin Forms 列表视图设计
- python - Python 抓取返回无
- python - 在python中用条件替换字符串