더북(TheBook)

UNIT 28
배열을 셋처럼 다루기

DATA SCIENCE FOR EVERYONE icon_day

 

어떤 경우에는 배열 구성이 배열 안 아이템의 순서보다 더 중요하다. 특정 아이템이 배열에 들어 있는지, 배열에 어떤 타입의 아이템이 들어 있는지 정보가 필요하다. numpy는 배열을 수학적 집합으로 어떻게 처리해야 할지 알고 있다.

unique(x) 함수는 배열 x의 중복되지 않는 모든 엘리먼트로 구성된 새로운 배열을 반환한다. 이 함수는 (‘UNIT 07. 카운터로 세기’에서 다룬) Counter 모듈의 훌륭한 대안이지만, 빈도를 실제로 세지는 않는다.

모두 잘 알고 있듯이 생물정보학(bioinformatics)은 데이터 과학 이래로 가장 각광받는 분야다. 생물정보학에서는 유전자 염기서열을 분석해 DNA 뉴클레오티드의 순서를 파악한다. 우리도 생물정보학을 한 번 흉내를 내 보자. 랜덤하게 생성된 DNA 파편에 어떤 종류의 뉴클레오티드가 들어 있을까?


dna = "AGTCCGCGAATACAGGCTCGGT"

dna_as_array = np.array(list(dna))

dna_as_array

>>>

array(['A', 'G', 'T', 'C', 'C', 'G', 'C', 'G', 'A', 'A', 'T', 'A', 'C',

       'A', 'G', 'G', 'C', 'T', 'C', 'G', 'G', 'T'],

     dtype='<U1')

   

np.unique(dna_as_array)

>>>

array(['A', 'C', 'G', 'T'],

     dtype='<U1')

 


* 뉴클레오티드 염기, 당, 인산 세 가지로 구성된 화학전 단량체. DNA의 기본 구성 단위

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.