Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 哪里让代码变慢_Python_Performance_Numpy - Fatal编程技术网

Python 哪里让代码变慢

Python 哪里让代码变慢,python,performance,numpy,Python,Performance,Numpy,我有以下代码块: def hasCleavage(tags, pair, fragsize): limit = int(fragsize["mean"] + fragsize["sd"] * 4) if pair.direction == "F1R2" or pair.direction == "R2F1": x1 = np.where((tags[pair.chr_r1] >= pair.r1["pos"]) & (tags[pair.chr_r1

我有以下代码块:

def hasCleavage(tags, pair, fragsize):
    limit = int(fragsize["mean"] + fragsize["sd"] * 4)
    if pair.direction == "F1R2" or pair.direction == "R2F1":
        x1 = np.where((tags[pair.chr_r1] >= pair.r1["pos"]) & (tags[pair.chr_r1] <= pair.r1["pos"]+limit))[0]
        x2 = np.where((tags[pair.chr_r2] <= pair.r2["pos"]+pair.frside) & (tags[pair.chr_r2] >= pair.r2["pos"]+pair.frside-limit))[0]
    elif pair.direction == "F1F2" or pair.direction == "F2F1":
        x1 = np.where((tags[pair.chr_r1] >= pair.r1["pos"]) & (tags[pair.chr_r1] <= pair.r1["pos"]+limit))[0]
        x2 = np.where((tags[pair.chr_r2] >= pair.r2["pos"]) & (tags[pair.chr_r2] <= pair.r2["pos"]+limit))[0]
    elif pair.direction == "R1R2" or pair.direction == "R2R1":
        x1 = np.where((tags[pair.chr_r1] <= pair.r1["pos"]+pair.frside) & (tags[pair.chr_r1] >= pair.r1["pos"]+pair.frside-limit))[0]
        x2 = np.where((tags[pair.chr_r2] <= pair.r2["pos"]+pair.frside) & (tags[pair.chr_r2] >= pair.r2["pos"]+pair.frside-limit))[0]
    else: #F2R1 or R1F2
        x1 = np.where((tags[pair.chr_r2] >= pair.r2["pos"]) & (tags[pair.chr_r2] <= pair.r2["pos"]+limit))[0]
        x2 = np.where((tags[pair.chr_r1] <= pair.r1["pos"]+pair.frside) & (tags[pair.chr_r1] >= pair.r1["pos"]+pair.frside-limit))[0]
    if x1.size > 0 and x2.size > 0:
        return True
    else:
        return False
pair
是自定义类的对象

您需要向我们提供有关此功能输入的更多信息。我们太懒了,不能仅仅从代码中推断出来。一个小样本也不错。同样,我们懒得自己编造一个测试用例。
np。其中
构造了一个新的、潜在的巨大数组。假设您只需要结果数组的大小,这可能不是您想要的,您可以尝试迭代数组并检查条件或使用其他NumPy函数。这里回答了一个类似的问题:您需要向我们提供有关此函数输入的更多信息。我们太懒了,不能仅仅从代码中推断出来。一个小样本也不错。同样,我们懒得自己编造一个测试用例。
np。其中
构造了一个新的、潜在的巨大数组。考虑到您只需要结果数组的大小,这可能不是您想要的,您可以尝试迭代数组并检查条件,或者使用其他NumPy函数。这里回答了一个类似的问题:
tags = {'JH584302.1': array([   351,   1408,   2185,   2378,   2740,   2904,   3364,   3657,
         4240,   5324,   5966,   5977,   5986,   6488,   6531,   6847,
         6961,   6973,   6991,   7107,   7383,   7395,   7557,   7569,
         9178,  10077,  10456,  10471,  11271,  11466,  12311,  12441,
        12598,  13051,  13123,  13859,  14167,  14672,  15156,  15252,
        15268,  15273,  15694,  15786,  16361,  17073,  17293,  17454])
}
fragsize = {'sd': 130.29407997430428, 'mean': 247.56636}