加快两个字符串的成对比较

生物怪胎

我有一个包含两个字符串的列表(包含一个序列和一些空格)。我需要成对浏览两个字符串,比较每个字符并计算两个都不等于空格的位置

我有这个,但是对于我的需求来说太慢了。有没有办法加快速度?

from itertools import izip

def overlap(sequence_pair):
    return sum(nucleotide1 != ' ' and nucleotide2 != ' ' for nucleotide1, nucleotide2 in izip(*sequence_pair))

if __name__ == '__main__':
    sequence_pair = ['   AT GT ',
                     ' GTAGCG  ']
    print overlap(sequence_pair)
阿什维尼乔杜里(Ashwini Chaudhary)

在Pure Python中很难优化代码,但是如果从一开始就使用NumPy数组而不是Python列表/字符串,则可以大大提高速度:

>>> import numpy as np
>>> sequence_pair = ['   AT GT '*10000, ' GTAGCG  '*10000]
>>> sequence_pair_arr = np.array([list('   AT GT '*10000), list(' GTAGCG  '*10000)])
>>> %timeit overlap(sequence_pair)
100 loops, best of 3: 14 ms per loop
>>> %timeit np.all(sequence_pair_arr != ' ', axis=0).sum()
100 loops, best of 3: 2.2 ms per loop

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Java中比较两个字符串日期?

来自分类Dev

两个字典中字符串值的所有对比较

来自分类Dev

在bash中将两个字符串与“-”连字符进行比较

来自分类Dev

在C中逐字符比较两个字符串

来自分类Dev

比较C中的两个字符串(字符串指针)

来自分类Dev

两个字符串中的SQL比较字符计数总计相同

来自分类Dev

用两种不同的方式比较两个字符串

来自分类Dev

比较两个字符串数组

来自分类Dev

当两个字符串都可以为null时,如何比较两个字符串?

来自分类Dev

比较两个字符串以找到匹配的字符串

来自分类Dev

如何比较两个字符串而忽略几个字符

来自分类Dev

Groovy比较两个字符串

来自分类Dev

如何比较两个字符串列表以查找相同的字符串

来自分类Dev

为什么通过计算字符的异或比较两个字符串?

来自分类Dev

命令比较两个字符串

来自分类Dev

Powershell比较两个字符串

来自分类Dev

比较两个字符串时间

来自分类Dev

两个字符串中的SQL比较字符计数总计相同

来自分类Dev

如何比较两个字符串?

来自分类Dev

用两种不同的方式比较两个字符串

来自分类Dev

比较两个字符字符串以获取C中的密码

来自分类Dev

比较两个字符串对象以获取匹配的字符串

来自分类Dev

比较两个字符串 PHP

来自分类Dev

如何比较两个字符串?

来自分类Dev

比较两个字符串的重复项和字符串位置

来自分类Dev

如何比较两个字符串以找到公共子字符串

来自分类Dev

比较两个字符串 [words]

来自分类Dev

如何比较两个字符串中的字符序列

来自分类Dev

比较两个字符串中的字符