gpt4 book ai didi

python - 计算 2D numpy 数组每行的重复项数

转载 作者:行者123 更新时间:2023-12-01 08:49:27 24 4
gpt4 key购买 nike

Python中有没有一种简单的方法来检查不同行中的重复项数量。例如:

Row1: 12  13  20  25  45  46  
Row2: 14 24 30 38 39 47
Row3: 1 9 15 21 29 39
Row4: 2 6 14 19 26 45
Row5: 5 23 25 27 32 40
Row6: 6 8 25 26 27 45

我想将第 6 行与之前的“n”行进行比较。如果 n=5,则输出应如下所示:[2 0 0 3 2]

当然,我可以将 Row6 中的每个值与循环中其他行的每个值进行比较,并增加每行的计数器。

但是你知道Python中已有的函数吗?

最佳答案

如果您正在使用 numpy 数组,请使用广播比较,

>>> n = 5
>>> v = df.values
>>> v
array([[12, 13, 20, 25, 45, 46],
[14, 24, 30, 38, 39, 47],
[ 1, 9, 15, 21, 29, 39],
[ 2, 6, 14, 19, 26, 45],
[ 5, 23, 25, 27, 32, 40],
[ 6, 8, 25, 26, 27, 45]])
>>> (v[None, -(n+1):-1, None] == v[-1, :, None]).sum(-1).sum(-1).squeeze()
array([2, 0, 0, 3, 2])

关于python - 计算 2D numpy 数组每行的重复项数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53188362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com