문자열 목록에서 문자열의 각 문자를 비교하는 가장 빠른 방법

시드 다스 라구 반시

나는 생물 정보학 도구로 작업하고 있으며 각 문자를 반복하기 위해 두 개의 루프를 사용하여 구성했습니다.

입력 (즉, seq1 및 시퀀스)은 AGATGCTAGTA'동일한 길이의 '와 같은 뉴클레오티드 문자열입니다 . sequence_info시퀀스의 모든 목록입니다.

엄청나게 느려서 0을 추가 bio_array하고 numpy 배열로 저장하는 대신 continue를 사용하여 속도를 높였습니다 . 여기에 새로운 코드가 있습니다.

for (sequence, sequence_location) in sequence_info:
    value = slow_function(seq1, sequence)

def slow_function(seq1,sequence):
    calc=0
    for i,nt in enumerate(seq1):
        if nt == sequence[i]:
            continue
        else:
            calc += bio_array[i]
    return float(calc)

%%timeitjupyter 노트북에서 사용하면 여전히 100ms. 주위 또는 아래에 있어야합니다 1-5ms. 함수를 반복자로 변환하고 루프를 사용하는 대신 목록 이해 /지도를 사용하려고 시도했습니다. 그러나 이러한 방법은 큰 영향을 미치지 않았습니다.

numpy를 사용할 수 있다고 생각하지만 문서를 보거나 stackoverflow에서 사용할 방법을 찾을 수 없었습니다. bio_array시퀀스에 불일치가 있으면 특정 값을 추가해야하므로 문자열의 각 문자 값을 개별적으로 비교해야한다고 생각합니다.

이 코드의 속도를 최대한 빨리 높이는 가장 좋은 방법은 무엇입니까?

sshashank124

내가 올바르게 이해한다면 두 문자열 시퀀스가 ​​일치하지 않는 위치를 기준으로 배열 요소를 합산하려는 문제가 있습니다. 시퀀스의 문자 배열을 만든 다음 numpy 조건부 인덱싱을 사용하여 일치하지 않는 값을 얻을 수 있습니다. 다음은 축소 된 예입니다.

seq_a = np.array(list('ABCDEFGH'))
seq_b = np.array(list('ABCZEFZH'))
bio_array = np.array([1, 5, 9, 4, 3, 8, 2, 7])

그런 다음 seq_a사이의 요소 별 비교를 수행하면 다음 과 같은 결과를 seq_b얻을 수 있습니다.

>>> seq_a != seq_b
array([False, False, False, True, False, False, True, False])

그런 다음 bio_array이 결과로 인덱싱 하여 관련 값을 가져온 다음 합산 할 수 있습니다.

>>> bio_array[seq_a != seq_b]
array([4, 2])

>>> bio_array[seq_a != seq_b].sum()
6

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C #에서 두 개의 문자열 열을 비교하는 가장 빠른 방법

분류에서Dev

문자열 배열에서 문자열을 찾는 가장 빠른 방법

분류에서Dev

문자열 배열에서 문자열을 찾는 가장 빠른 방법

분류에서Dev

C #에서 문자열을 자르는 가장 빠른 방법

분류에서Dev

문자열에서 첫 번째 문자를 문자열로 얻는 가장 빠른 방법

분류에서Dev

거대한 문자열에서 여러 문자열을 교체하는 가장 빠른 방법

분류에서Dev

문자열에서 가장 먼저 나타나는 목록 값을 결정하는 가장 빠른 방법

분류에서Dev

R에서-유사성에 대한 문자열을 쌍으로 비교하는 가장 빠른 방법

분류에서Dev

JavaScript에서 문자열을 비교하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

문자열을 큰 arrayList와 비교하는 가장 빠른 방법

분류에서Dev

문자열 목록에서 가장 빠른 문자열 찾기

분류에서Dev

자바 - 문자열의 크기를 확인하는 가장 빠른 방법

분류에서Dev

자바에서 문자열을 분리하는 가장 빠른 방법

분류에서Dev

JavaScript에서 문자열 배열을 필터링하는 가장 빠른 방법

분류에서Dev

문자열 내의 각 요소 앞뒤에 문자를 추가하는 방법

분류에서Dev

여러 문자 열을 숫자 값에 매핑하는 가장 빠른 방법

분류에서Dev

자바 : 여러 문자열 자리를 대체하는 가장 빠른 방법

분류에서Dev

펄에서 외국 문자 세트에 대한 문자열 비교를 수행하는 더 빠른 방법

분류에서Dev

vbscript에서 문자열에 여러 단어 / 구문 목록의 단어 / 구가 포함되어 있는지 확인하는 가장 빠른 방법

분류에서Dev

큰 정수 목록을 C #의 문자열 목록으로 분할하는 가장 빠른 방법

분류에서Dev

JAVA에서 하위 문자열을 찾는 가장 빠른 방법

분류에서Dev

변수에서 문자열을 제거하는 가장 빠른 방법

분류에서Dev

Pandas의 문자열 목록에서 각 문자열에 대해 코드를 반복하는 방법

분류에서Dev

Java를 사용하여 문자열의 대체 문자를 비교하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

Java를 사용하여 문자열의 대체 문자를 비교하는 가장 빠른 방법은 무엇입니까?

분류에서Dev

문자열에서 마지막 패턴을 바꾸는 가장 빠른 방법

분류에서Dev

문자열 열의 값이 집합에있는 행을 선택하는 가장 빠른 방법

분류에서Dev

문자열을 검색하는 가장 빠른 방법

분류에서Dev

'!'를 제거하는 방법 파이썬 목록의 각 문자열 끝에서?

Related 관련 기사

  1. 1

    C #에서 두 개의 문자열 열을 비교하는 가장 빠른 방법

  2. 2

    문자열 배열에서 문자열을 찾는 가장 빠른 방법

  3. 3

    문자열 배열에서 문자열을 찾는 가장 빠른 방법

  4. 4

    C #에서 문자열을 자르는 가장 빠른 방법

  5. 5

    문자열에서 첫 번째 문자를 문자열로 얻는 가장 빠른 방법

  6. 6

    거대한 문자열에서 여러 문자열을 교체하는 가장 빠른 방법

  7. 7

    문자열에서 가장 먼저 나타나는 목록 값을 결정하는 가장 빠른 방법

  8. 8

    R에서-유사성에 대한 문자열을 쌍으로 비교하는 가장 빠른 방법

  9. 9

    JavaScript에서 문자열을 비교하는 가장 빠른 방법은 무엇입니까?

  10. 10

    문자열을 큰 arrayList와 비교하는 가장 빠른 방법

  11. 11

    문자열 목록에서 가장 빠른 문자열 찾기

  12. 12

    자바 - 문자열의 크기를 확인하는 가장 빠른 방법

  13. 13

    자바에서 문자열을 분리하는 가장 빠른 방법

  14. 14

    JavaScript에서 문자열 배열을 필터링하는 가장 빠른 방법

  15. 15

    문자열 내의 각 요소 앞뒤에 문자를 추가하는 방법

  16. 16

    여러 문자 열을 숫자 값에 매핑하는 가장 빠른 방법

  17. 17

    자바 : 여러 문자열 자리를 대체하는 가장 빠른 방법

  18. 18

    펄에서 외국 문자 세트에 대한 문자열 비교를 수행하는 더 빠른 방법

  19. 19

    vbscript에서 문자열에 여러 단어 / 구문 목록의 단어 / 구가 포함되어 있는지 확인하는 가장 빠른 방법

  20. 20

    큰 정수 목록을 C #의 문자열 목록으로 분할하는 가장 빠른 방법

  21. 21

    JAVA에서 하위 문자열을 찾는 가장 빠른 방법

  22. 22

    변수에서 문자열을 제거하는 가장 빠른 방법

  23. 23

    Pandas의 문자열 목록에서 각 문자열에 대해 코드를 반복하는 방법

  24. 24

    Java를 사용하여 문자열의 대체 문자를 비교하는 가장 빠른 방법은 무엇입니까?

  25. 25

    Java를 사용하여 문자열의 대체 문자를 비교하는 가장 빠른 방법은 무엇입니까?

  26. 26

    문자열에서 마지막 패턴을 바꾸는 가장 빠른 방법

  27. 27

    문자열 열의 값이 집합에있는 행을 선택하는 가장 빠른 방법

  28. 28

    문자열을 검색하는 가장 빠른 방법

  29. 29

    '!'를 제거하는 방법 파이썬 목록의 각 문자열 끝에서?

뜨겁다태그

보관