1
2
如果
|
2
2
它之所以慢是因为它是O(N*N) 这个 maximum subsequence 算法可能有助于改进 |
3
1
预计算呢
|
4
1
我不知道我在做什么,但也许这有助于加快你的算法:
|
5
0
没有什么能像慢动作那样跳出来。我可以这样重写内部循环:
甚至:
但我也不知道这能省多少时间。 将DNA碱基存储为0-3整数,并从元组而不是字典中查找分数可能会稍微快一些。把字母翻译成数字会有很大的效果,但这只需要做一次。 |
6
0
一定要使用numpy并将logProbs存储为一个2D数组,而不是一个字典列表。还将seq存储为上面建议的一维(短)整数数组。如果您不必每次调用函数时都执行这些转换,这将有所帮助(在函数内部执行这些转换不会节省很多钱)。你可以消除第二个循环:
之后的操作取决于这两个数据元素中最常更改的是哪一个: 如果logProbs通常保持不变,并且希望通过它运行许多DNA序列,那么可以考虑将DNA序列堆叠为2D数组。numpy可以很快地在2D数组中循环,所以如果你有200个DNA序列要处理,它只需要比单个序列稍长的时间。 最后,如果你真的需要加速,使用scipy.weave。这是写几行快速C来加速循环的一种非常简单的方法。但是,我建议使用scipy>0.8。 |
7
0
你可以试着提升不止是self.logProbs在环外:
|
8
0
我怀疑这会有很大的不同,但你可以尝试改变:
到
或者甚至将枚举提升到seq循环之外。 |
TheHidden · burp extension如何拦截所有流量 6 年前 |
awa993 · 从java调用python 7 年前 |
Cameron M. · 埃杜。斯坦福大学。自然语言处理。util。ReflectionLoading$ReflectionLoadingException当将CoreNLP与Jython一起使用时 7 年前 |
Aidenhjj · Python:在OOP中使用API事件处理程序 7 年前 |