如何求非均匀值大Pandas两个级数的交并?

2024-06-02 08:35:15 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有两个系列对象,比如:[0,0,1][1,0,0] 我怎样才能得到两者的交集和结合呢? 它们只包含布尔值,这意味着它们是非唯一值。在

我有一个大的布尔矩阵。我已经把它切碎了,现在我试着找出假阳性和阴性,我想这意味着我必须得到每一个原始对的Jaccard相似性。在


Tags: 对象矩阵阳性相似性jaccard阴性
1条回答
网友
1楼 · 发布于 2024-06-02 08:35:15

既然你说他们是布尔人,那就用numpy的logical_and和{},或者在序列中使用&和{}

y1 = pd.Series([1,0,1,0])
y2 = pd.Series([1,0,0,1])

# Numpy approach 
intersection = np.logical_and(y1.values, y2.values)
union = np.logical_or(y1.values, y2.values)
intersection.sum() / union.sum()
# 0.33333333333333331

# Pandas approach 
sum(y1 & y2) / sum(y1 | y2)
# 0.33333333333333331

相关问题 更多 >