我正在尝试在 python 中过滤一个大文件中的重叠行。重叠度设置为 25%。换句话说,任何两行之间的交集元素的数量小于它们并集的0.25倍。如果大于0.25,则删除一行。所以如果我有一个总共有1000 000行的大文件,第一个5行如下:
c6 c24 c32 c54 c67
c6 c24 c32 c51 c68 c78
c6 c32 c54 c67
c6 c32 c55 c63 c85 c94 c75
c6 c32 c53 c67
因为第 1 行和第 2 行相交的元素个数为 3(如 c6,c24,c32),所以它们之间的并集数为 8,(如 c6,c24,c32,c54,c67,c51 ,c68,c78)。重叠度为3/8=0.375 > 0.25,第2行被删除。第3和第5行也是如此。最终答案是第1和第4行。
c6 c24 c32 c54 c67
c6 c32 c55 c63 c85 c94 c75
伪代码如下:
for i=1:(n-1) # n is the number of rows of the big file for j=(i+1):n if overlap degrees of the ith row and jth row is more than 0.25 delete the jth row from the big file end end
结尾
如何在python中解决这个问题?谢谢!