Pre-course 3

김민영·2022년 12월 29일
0

pre_course

목록 보기
3/7

3일차

Numpy

  • 사용 이유
    • list는 큰 matrix 표현하기에 비효율적
    • 파이썬은 interpreter 언어이므로 처리 속도가 느림 -> numpy 를 사용.
  • Numerival Python
    • cli에 pip install numpy
    • import numpy as np
  • 용어
    • scalar, vector, matrix, 3-tensor, n-tensor
  • 함수
    • shape: dimension 구성 반환. array 크기, 형태 반환. (높이,세로,가로)
      • ndim: rank. number of dimensions
      • size: data 개수
    • dtype: data type 반환 - 파이썬 리스트과 달리 dynamic typing 지원 안 함. 하나의 변수 형태만 들어가게 됨.
      • C 데이터 타입과 같이 사용 가능
    • reshape: shape 크기 변경
      • reshape(-1, 2): 2, 4 -> 4, 2. size 기반으로 row 개수 선정
      • 데이터 순서는 그대로
    • flatten: 다차원 array를 1차원 array로 변환
      • array 자체를 바꾸려면 재할당 필요
    • indexing: [0, 0] 표기법 가능
    • slicing: 행, 열 나눠서 slicing 가능
      • [row 범위, col 범위]
      • arr[:, start:end:step] -> 건너뛰기 가능
  • creating function
    • arange: array 범위 지정하여 list 생성
    • zeros: 0으로 찬 ndarray 생성. shape, dtype 지정
    • ones: 1로 찬 ndarray 생성
    • empty: shape만 주어지고 비어지는 ndarray 생성 - memory initialization 안 됨
    • something_like: 같은 행렬 생성
    • identity: 단위행렬 생성
    • eye: 대각선 1 행렬(시작위치 조절 가능. n, m, k)
    • diag: 시작위치부터 대각선의 숫자 반환
  • random sampling
    • np.random.normal
    • np.random.eponential
  • operation function
    • sum, mean, std
    • axis: 함수 실행 시 기준이 되는 축.
      • 가로 4, 세로 3: (3, 4), 앞이 axis = 0, 뒤가 axis = 1
  • concatenate: array를 붙이는 함수
    • vstack: 가로줄 경계로 합침
    • hstack: 세로줄 경계로 합침
    • concatenate axis=0: axis 지정. 0: 가로줄 경계, 1: 세로줄 경계
    • newaxis: 새로운 축 생성. ex, 2차원 배열과 1차원 배열 합칠 때, 1차원 배열 축 늘리기
  • array operation
    • +, -, *: element-wise operation: 같은 크기 배열끼리 연산 가능
    • dot
    • transpose, T: 대각선 기준 대칭 이동
    • broadcasting: +, -, *, /, //, % ... 크기 다른 것들끼리도 연산 가능
      • 크기 다르면 같도록 퍼짐. 복붙됨
  • numpy performance
    • timeit: 주피터 환경에서 시간 측정
    • 속도는 for loop < list comprehension < numpy
    • numpy는 c로 구현되어있어서 계산 성능이 좋지만 dynamic typing 안됨. 할당에서 이점 없음
  • comparisons
    • np.any(a>5), np.all(a>5)
    • 배열 크기 동일시, element-wise operation -> array 크기로 반환
    • logical_ and, not, or (a>0, a<3)
    • where: True인 index 값 반환
    • isnan: not a number
    • isfinite: is finite number
    • argmax, argmin: array 내 최대값, 최소값 인덱스 반환
    • argsort: 정렬, 인덱스 반환
  • boolean, fancy index
    • array[test_array > 3]: 조건이 True인 index의 element만 반환
    • fancy index: array 값을 index로 사용하는 방식. take와 같은 효과
  • loadtxt, savetxt: 데이터 읽고, 저장

벡터가 뭐예요?

  • 벡터
    - 공간에서 한 점
    • 원점으로부터 상대적 위치
    • 덧셈, 뺄셈: 상대적 위치 이동
    • norm: 원점으로부터 거리
      • L1 norm 각 성분의 변화량의 절대값의 총 합
      • L2 norm 피타고라스 정리로 유클리드 거리 계산
    • 두 벡터 사이 각도: 제2코사인법칙. 내적
      • orthogonal projection 정사영된 벡터의 길이
profile
노션에 1차 정리합니당 - https://cream-efraasia-f3c.notion.site/4fb02c0dc82e48358e67c61b7ce8ab36?v=

0개의 댓글