[파이썬] numpy

numpy 배경 지식 정리

🤔어떻게 행렬과 매트릭스를 코드로 표현할 것인가?


해당 코드(행렬을 리스트로 표현 할 때)의 문제점

  • 다양한 Matrix 계산 표현 불가(ex. dotp, norm)
  • 굉장히 큰 Matrix에 대한 표현
  • 처리 속도 문제(python은 interpreter 언어)
    → 적절한 패키지를 활용하자

파이썬 과학 처리 패키지, numpy

  • Numerical Python
  • 파이썬의 고성능 과학 계산용 패키지
  • Matrix와 Vector와 같은 Array 연산의 사실상의 표준
  • 일반 List에 비해 빠르고, 메모리 효율적
  • 반복문 없이 데이터 배열에 대한 처리를 지원
  • 선형대수와 관련된 다양한 기능을 제공
  • C,C++,포트란 언어와 통합 가능

ndarray

  • numpy는 np.array 함수를 활용해 배열을 생성
  • numpy는 하나의 데이터 type만 배열에 넣을 수 있음
  • list와 가장 큰 차이점 → dynamic typing not supported
  • C의 Array를 사용하여 배열을 생성

numpy array vs python list

  • numpy array는 차례대로 데이터가 메모리에 들어간다.
  • 반면에 python list는 숫자 자체가 메모리에 저장이 되어있어서 리스트는 해당 숫자의 주소값이 들어가 있다. (해당 리스트의 값을 찾으려면 두번을 검색해야한다.)
    → 연산 속도, 메모리의 접근성, 메모리의 크기가 훨씬 효율적이게 됨
a=[1,2,3,4,5]
b=[5,4,3,2,1]

a[0] is b[-1] #1이란 숫자의 static한 주소값을 비교
#결과값:True

a=np.array(a)
b=np.array(b)
a[0] is b[-1] #해당 array가 메모리에 저장된 주소값을 비교
#결과값:False

새롭게 생성된 축이 axis=0이 된다

좋은 웹페이지 즐겨찾기