Colab ( Colaboratory)
- 구글 리서치팀에서 개발한 제품
- 누구나 브라우저를 통해 임의의 python 코드를 작성하고 실행
- 무료로 제공하며 Jupyter와 차이가 크게 없음
- 자원이 무제한이 아님(더 빠른 처리를 원한다면 유료버전인 Colab Pro 사용 권장)
Colab에서 주의해야 할 점
- 처리/ 네트워크 지연이 발생할 수 있음
- 자원이 무제한이 아님
- 메모장은 최대 12시간 실행할 수 있음
- 메모리 용량이 정해져 있지 않음
단축키
- 단축키 설정하면: Ctrl + M H
- 노트 저장: Ctrl + S
- 셀 추가: Ctrl + M A
- 셀 실행: Ctrl + Enter
(Shift + Enter는 다음 셀로 이동)
NumPY(Numerical Python)
- 파이썬에서 행렬을 효과적으로 이용하기 위한 외부 라이브러리
- 행렬과 관련된 다양한 기능을 가지고 있어, 처리 / 분석에 적합함
- ndarrray 라는 자체 자료형으로 데이터 병합, 부분집합, 필터링, 변형, 연산, 정렬, 유일 원소 찾기 등의 기능 구현
- NumPY 내부 알고리즘은 C언어로 작성되어, 적은 메모리로 빠른 처리가 가능
ndarray
ndarray 객체 만들기
astype
- 객체 ndarray의 자료형을 변환해야 할 경우
- 실수형을 정수형으로 바꾸어 소수점 이하를 버릴 때
- 외부 파일에서 불러운 문자열을 실수형 / 정수형으로 바꿀 때
- 변환에 실패할 경우, ValueError 발생
Broadcasting
- 벡터화(vectorization)
- NumPy는 for 반복문을 사용하지 않고 연산 가능
Indexing / Slicing
- 1차원 행렬일 경우, 기존 Python 문법과 동일하게 사용
- 다차원 행렬일 경우, 기존 Python 문법과 유사 (대괄호 혹은 쉼표로 구별)
reshape
- 생성한 객체 ndarray의 차원 구조 변경
- 동일한 차원의 다른 행렬 구조
- 다른 차원의 다른 행렬 구조
ravel / flatten
- 다차원의 객체 ndarray를 1차원으로 일괄 변경
평탄화: raveling, flattening
- 메소드 ravel가 반환한 새로운 객체 ndarray는 기존 객체 ndarray를 가르킴
- 메소드 flatten은 새로운 객체 ndarray를 생성
concatenate / vastack / hstack
서로 다른 객체 ndarray를 합침
- concatenate: 매개변수로 전달 받은 축 정보로 합침
- vstack: 행으로 합침 (세로)
- hstack: 열로 합침 (가로)
- 클래스 ndarray에 없음 ( 클래스 NumPy만 있음)
split / vsplit / hsplit
ndarray의 차원을 분리함
- 매개변수로 분리할 개수 혹은 range 형태로 전달
- Scala 형태: 동일한 크기의 차원으로 Scala 개로 분리
- range 형태: 총 3개로 분리하며, 중간 Index 값을 입력
repeat / tile
행렬을 반복
- 빈번하게 사용하지 않지만, Oversamling 등으로 활용 가능
- 클래스 NumPy만 있음
- 메소드 repeat는 행렬 전체를 반복하는 것이 아닌, 행렬의 요소가 반복함
- Scala 형태: 모든 요소를 Scala 만큼 동일하게 반복
- 배열 형태: 각 요소별 다르게 반복
- 다차원 행렬에서 축 정보가 없으면 메소드 repeat는 평탄화 됨
- 메소드 tile은 행렬 자체가 반복함
- 메소드 repeat와 동일하게 반복 횟수를 Scala 혹은 배열 형태로 전달
- Scala 형태: Scala 만큼 열 방향으로 동일하게 반복
- 배열 형태: 행 혹은 열 방향으로 반복
Transpose / SwapAxes
행과 열을 맞바꾼 전치 행렬(Transposed Matrix)
- 2차원 행렬일 경우, 행과 열을 바꿈
- 클래스 ndarray는 Attribute T가 있음
- 메소드 transpose 또한 가능
- 3차원 이상의 행렬일 경우, 바꾸고자 하는 축(Axe)을 입력
'데이터 청년 캠퍼스(2022) > 배운 내용 정리' 카테고리의 다른 글
7.5(화) - CSV 파일 분석 (2) (0) | 2022.07.06 |
---|---|
7.5(화) - CSV 파일 분석 (1) (0) | 2022.07.05 |
7.4(월) Pandas (0) | 2022.07.04 |
7.1(금) 파이썬 - MatPolt, NumPy (0) | 2022.07.03 |
6.30(목) CSS 3 (2) (0) | 2022.06.30 |