[파이썬] 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이 된다
Author And Source
이 문제에 관하여([파이썬] numpy), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jungmiin/파이썬-numpy저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)