[Python] 파이썬 라이브러리 넘파이 공부하기(1)-배열생성.
∴ 공부 개요.
: 파이썬의 라이브러리 중 복잡한 수치 계산(특히 배열 및 행렬}에 특화된 라이브러이니 넘파이는
데이터를 요약하고 범주화하는 판다스와 함께 데이터를 처리해서 알고리즘을 돌리거나
전처리를 통해 시각화를 하는 과정에 있어서 꼭 필요하기에 제대로 짚고 넘어가 보려고 합니다.
: 라이브러리를 공부하는 것과 함께 분석 프로젝트도 함께 진행하면서 익히는 시간을 가지겠습니다.
∴ 공부 순서
∇ Numpy 특징
∇ 배열 생성
∇ 배열 조회
∇ 배열 값 삽입/수정/삭제/복사
∇ 배열 변환
∇ 배열 연산
∇ 배열 정렬
∇ 배열 입출력
∇ Numpy 특징.
- Numerical Python의 약자
- 고성능 과학 계산용 패키지로 강력한 N차원 배열 객체.
- 범용적 데이터 처리에 사용 가능한 다차원 컨테이너
- 정교한 브로드캐스팅 기능
- 파이썬의 자료형 list와 비슷하지만, 더 빠르고 메모리를 효율적으로 관리
- 반복문 없이 데이터 배열에 대한 처리를 지원하여 빠르고 편리.
- 데이터 패키지의 기본.
∇ 배열 생성
넘파이의 행렬(배열)은 np.array([])를 통해 만들어집니다
∇ 리스트로 배열 만들기.
√ 1차원 행렬(배열)
√ 2차원 행렬(배열).
√ 3차원 행렬(배열).
∇ 배열 생성 및 초기화.
배열의 값을 0 혹은 1 혹은 지정한 값으로 초기화 시킬때는 zeros/ones/ full을 사용해줍니다.
단위행렬[eye()]과 하삼각행렬[tri()]을 만드는법과, 빈배열[empty()]을 만드는 방법입니다.
아직까지는 어디에 쓰이는지 감이 안잡히네요.
기존 배열의 모양은 비슷하게 가져오고 새로운 값으로 초기화 시키는 방법입니다.
np.~~~~_like(배열이름)으로 선언해줍니다.
∇ 생성한 값으로 배열 생성하기.
- arange() : 정수 범위로 배열 생성
- linspace() : 범위 내에서 균등 간격의 배열 생성
- logspace() : 범위 내에서 균등간격으로 로그 스케일로 배열 생성
∇ 랜덤 값으로 배열 생성하기. (쓰읍...통계 개념 다시 잡아야겠네요)
- Seed : 난수 생성기의 초기값을 설정하는데 사용되는 숫자입니다.
-> 동일한 시드를 사용하면, 항상 동일한 순서의 난수가 생성됩니다.
-> 실험의 재현성을 확보하기 위해 사용합니다.
- permutaion(순열) : 주어진 집합의 원소듣을 재배열하는 방법.
-> 순서를 임의로 바꾸거나 임의의 순열을 반환합니다.
- shuffle : 리스트나 배열의 순서를 무작위로 뒤섞는 기능입니다.
- np.random : 랜덤한 수의 배열을 생성합니다.
- np.random.rand() : 균등분포( 0과 1사이의 균일 분포)에서 랜덤한 float값으로 배열을 생성합니다.
- np.random.randn() : 표준 정규 분포(평균 0 , 표준편차 1)에서 랜덤한 float 값으로 배열 생성합니다.
- np.randint() : 지정된 (최대/최소)범위 내의 랜덤한 정수로 배열 생성합니다.
- np.random.binomial() : 이항분포에서 표본을 추출합니다.
- np.random.normal() : 정규분포(가우시안분포)에서 랜덤한 float값으로 배열을 생성합니다.
- np.random.beta() : 배타분포에서 표본 추출
- np.random.chisquare() : 카이제곱분포에서 표본을 추출합니다.
- np.random.gamma() : 감마분포에서 표본을 추출합니다
- np.random.choice() : 주어진 1차원배열에서 랜덤하게 샘플링하게 새로운 배열을 생성합니다.
- np.random.uniform():지정된 범위 내에서 균일 분포의 랜덤 float값으로 배열을 생성합니다.
∇ 표준 데이터 타입.
∇ 날짜/시간 배열 생성
dtype=np.datetime64