실습 · 연습문제 1개
개수 행렬의 정규화와 log1p normalize-counts
세포 × 유전자 개수 행렬 counts (shape (N, G), 음이 아닌 정수)를 받아, 세포마다 총합을 target_sum으로 맞춘 뒤 자연로그 로 변환한 행렬을 반환하는 함수 normalize_log1p(counts, target_sum=1e4)를 완성한다.
- 반환값은
(N, G)실수 배열이다. 입력 배열을 바꾸지 않는다. - 총 개수가 0인 세포(빈 droplet 등)는 0으로 나눌 수 없다. 이런 세포의 행은 모두 0으로 둔다. 경고나
nan이 나오면 안 된다. target_sum을 바꿀 수 있어야 한다.
테스트는 손으로 계산한 값, 깊이가 두 배인 세포가 같은 값을 갖는지, 정규화 뒤(로그 전) 각 세포의 총합이 target_sum인지, 빈 세포 처리를 확인한다.
힌트: 총합이 0인 행은 나누기 전에 분모를 1로 바꾸어 두면 결과가 자연스럽게 0이 된다.