[Numpy] Numpy (Numerical Python)란?

이상해씨·2023년 11월 17일
0

데이터분석

목록 보기
3/5

📌 Numpy(Numerical Python)란?

  • 행렬, 대규모 다차원 배열을 편리하게 처리할 수 있는 파이썬 라이브러리
  • 데이터 구조와 고성능 수치 계산 함수 제공

Numpy의 특징?

  • N차원 배열 객체
  • array 단위로 관리
  • 큰 규모의 데이터연산을 빠르게 처리
  • 반복문 없이 배열을 처리
  • 정교한 브로드캐스팅(broadcast) 기능

📌 데이터 구조(Data structure)

1. 스칼라(Scals)

  • 숫자

2. 백터(Vector)

  • 벡터는 숫자들의 리스트 1D array

3. 행렬(Matrix)

  • 행렬은 숫자들의 2D array

4. 다차원 배열(ndarray)

  • 서로 다른 타입의 데이터를 담을 수 없음 (메모리 낭비를 방지하기 위함)

  • 메모리의 양이 상대적으로 적음

  • 내부 반복문 사용으로 속도가 빠름

  • 배열 간의 산술 연산 가능

  • 다차원 배열의 구조는 shape으로 표기

  • 입체적인 데이터 구조를 가짐

  • 데이터 방향은 axis 로 표기

    • 행 : axis =0
    • 열 : axis = 1
    • 채널 : axis =2

5. 리스트(list)

  • 사용되는 메모리량이 많음
  • 서로다른 타입의 데이터를 담을 수 있음

📌 브로드캐스팅 (broadcast)

  • 일반적으로 numpy 에서 모양이 다른 배열끼리의 연산이 불가능하나, 특정한 조건이 부합할 경우, 모양이 다른 배열 끼리도 연산을 수행하도록 하는 것을 브로드 캐스팅이라고 함

  • 브로드 캐스팅에서 모양이 부족한 부분은 확장하여 서로 연산을 수행할 수 있도록 함

    (출처: http://www.astroml.org/book_figures/appendix/fig_broadcast_visual.html)

  • 크기가 다른 배열 간의 연산 함수를 적용하는 규칙집합

    • mxn 행렬과 mx1간의 연산
    • mxn 행렬과 1xn간의 연산
    • mx1 행렬과 1xn간의 연산

참고

profile
공부에는 끝이 없다

0개의 댓글