본문 바로가기
빅데이터 부트캠프/Python

빅데이터 부트캠프 12일차

by Mecodata 2022. 7. 19.

Numpy

- Numerical Python의 줄임말

- 선형대수 라이브러리

- 다차원 배열을 다룰 때 주로 사용

- 수열 데이터를 다룰 때 용이하며 동일한 연산을 하더라도 Python에 비해 처리 속도가 빠름

- import numpy as np를 통해 np로 사용함

 

Numpy 기본 메서드

- array = 해당 시퀀스 타입 데이터를 numpy.ndarray 타입으로 변환 (dtype=으로 원소 데이터 타입 지정 가능)

arraylist와 다르게 동일한 데이터 타입의 원소만 저장 가능

- arange(시작, 끝+1, 간격) = range와 비슷하게 수열데이터 생성

dtype = type 조회 

 

- shape = 행과 열의 개수를 tuple 형식으로 출력

- ndim = 해당 자료가 몇차원으로 구성되어있는지 출력

- itemsize = 원소 각 하나의 비트 수 (1byte = 8비트) 출력

- size = 원소의 개수 출력

- strides = (각 dimension의 간격, 데이터간의 간격)을 튜플 형식으로 출력 

 

- sum = 총합, max = 최대값, min = 최솟값, ptp = 최대값-최솟값, mean = 평균, dot = 행렬 곱셈

std = 표준편차, var = 분산, sqrt = 제곱근

 

- argmax =  numpy.ndarray 타입 데이터에서 최대값의 인덱스 번호 출력

- argmin = numpy.ndarray 타입 데이터에서 최솟값의 인덱스 번호 출력

 

- astype = 해당 데이터 타입으로 변경

ex) astype(str) = 데이터 타입 str로 변경

- reshape(행렬 숫자,행 숫자,열 숫자) = 데이터 제시한 행과 열로 변경

ex) reshape(2,3) = 데이터 2행 3열로 변경

- flatten = 해당 자료의 차원을 1차원으로 변경(평탄화)

 

- zeros(행 숫자,열 숫자) = 제시한 행과 열로 구성된 영벡터 생성

- ones(행 숫자,열 숫자) = 제시한 행과 열로 구성된 일벡터 생성

 

- insert(자료명, 인덱스값, 넣을 데이터) = 해당 자료 지정 인덱스 위치에 해당 데이터 추가

(인덱스 -1로 하면 append와 같음)

append(파일, 추가할 데이터) = 해당 numpy.ndarray파일에  해당 데이터 추가하여 출력(원본 변경 X)

※ 원본 변경하려면 test = np.append(test, 15)와 같이 입력해주어야 함.

- delete(자료명, 삭제할 데이터의 인덱스값, 축(2차원 기준 행 = 0 or 열 = 1) 설정) = 해당 인덱스 위치 데이터 삭제

ex) delete(A,1,0) = A에서 두번째 의 데이터 삭제

      delete(A,1,1) = A에서 두번째 의 데이터 삭제 

 

- median = 중앙값 데이터 출력

- cumsum = 누적합계 데이터 리스트 형식으로 출력

 

- sort = 데이터 오름차순으로 정렬 (내림차순은 sort()[::-1])

- argsort = sort하기 전원본의 인덱스번호가 오름차순 정렬 후에 어떤 자리에 위치할지 인덱스번호 출력

- searchsorted(자료명, 넣을 데이터) = 넣을 데이터가 자료의 몇번째 인덱스를 차지하게 될지 인덱스번호 출력 

- flip = 기존 데이터 역순으로 정렬

 

numpy에는 기본적으로 random 모듈이 적용되어있음

- choice, rand 같은 메서드에서 중복을 방지하고 싶으면 replace=False 입력

- random.seed = 무작위로 생성되는 수를 고정

 

- repeat(데이터, 숫자, 축) = 해당 데이터 지정 숫자만큼 복사하여 출력 

※ 축(axis)2차원의 경우 axis = 0 : 행, axis = 1 : 열을 의미(3차원은 0: 깊이, 1: 행, 2: 열)

-> repeat([1,2],10,axis=0) = [1,2]를 10개 행으로 복사

 

- numpy.ndarray형식의 파일은 각 원소에 5를 더하는 것을 간단하게 +5로 가능(브로드캐스팅)

ex) test = [5,10,15]      test + 5 -> test = [10,15,20]

 

3차원 인덱싱&슬라이싱

- A[행렬의 범위, 행의 범위, 열의 범위] 

A[:] = 전체 출력, A[a:] = a부터 끝까지, A[:b] = 처음부터 b-1까지, A[a:b] = a부터 b-1까지 

ex) A[1,1:3,0:2] = 1번째 행렬에서 1~2행의 0~1열 원소 출력

      A[:,:4,:1] = 전체 행렬에서 0~3행의 0열 원소 출력

- 불린 인덱싱  = 필요한 데이터에 대한 범위를 설정하여 출력

ex) A[A>13] = A의 데이터에서 13보다 큰 데이터만 출력

 

- transpose = 백터-> 백터 or백터 ->  백터로 변환 (간단하게 .T로 입력가능)

 

댓글