3강 / 20강
모양부터 본다 — 행이 유전자인가 세포인가
shape · dtype · 그리고 메모리 계산
구조를 훑었으니 이제 크기를 봅니다. 앞 강의의 출력에 이런 줄이 있었습니다.
shape int32 (2,)
shape 는 값이 두 개뿐인 아주 작은 데이터셋인데, 이 파일에서 가장 중요한 두 숫자를 담고 있습니다.
행렬이 몇 행 몇 열인지죠.
shape 를 그냥 믿지 말고, 이렇게 다른 데이터셋의 길이와 맞춰서 확인하세요. 어느 축이 무엇인지 스스로 증명하는 것입니다.
Python
브라우저에서 실행
data 가 정수라는 점이 중요합니다. UMI 개수는 '몇 개를 셌는가' 이므로 소수점이 있을 수 없습니다.
Python
브라우저에서 실행
이 계산을 습관으로 만드세요. 펼치기 전에 곱셈부터 해 보는 겁니다.
Python
브라우저에서 실행
🤔 확인 문제
shape 가 [32285, 1200] 이고 barcodes 의 길이가 1,200 이었습니다. 이때 확실히 말할 수 있는 것은?해설 바코드는 세포를 가리키는 이름표입니다. 그 개수(1,200)가 열의 개수와 같으므로 열이 세포, 따라서 행이 유전자입니다. 이렇게 다른 데이터셋과 길이를 맞춰 확인하는 것이 안전합니다.
🤔 확인 문제
32,285 × 40,100 행렬을 float64 로 펼치면 약 얼마가 필요할까요?
해설 32,285 × 40,100 = 약 12.9억 칸 × 8바이트 = 약 10.4 GB. 웬만한 노트북에서는 그대로 멈춥니다. 그래서 이 자료는 끝까지 희소행렬로 다뤄야 합니다.
🤔 확인 문제
data 의 dtype 이 int32 인 것이 자연스러운 이유는?해설 원자료(raw count)는 세어 본 개수입니다. 2.7개짜리 UMI 는 존재하지 않아요. 소수가 등장하는 것은 우리가 정규화(9강)를 한 다음부터입니다. 자료형만 봐도 그 자료가 원본인지 가공본인지 짐작할 수 있습니다.