Study/AI

[AI] 넘파이와 판다스

motti 2023. 3. 12. 16:14
반응형

넘파이

  • 일반 리스트에 비해 빠르고, 메모리 효율적
  • 반복문 없이 데이터 배열에 대한 처리를 지원

차원

1차원

[1,2,3,4] (4,) 로 표현 - 컬럼의 갯수

2차원

[[1,2,3,4],[1.2.3.4],[1.2.3,4]]

(3,4) : 위에서 4가 한칸 밀리고 새로운 차원인 3이 앞으로

[[[1,2,3,4],[1.2.3.4],[1.2.3,4]]

[[1,2,3,4],[1.2.3.4],[1.2.3,4]]

[[1,2,3,4],[1.2.3.4],[1.2.3,4]]

[[1,2,3,4],[1.2.3.4],[1.2.3,4]] ]

3차원

(4,3,4) 위에서 2차원에서 앞에 새로운 차원 4가 생성 나머지 밀림

reshape

  • 넘파이의 배열을 바꿔줌. -1을 넣으면 나머지를 고려하여 알아서 shape 지정

flatten

  • 다차원 array를 1차원 array로 변환

ones, zeros and empty

np.ones , np.zeros 말 그대로 1 , 0으로 값을 채운 넘파이 배열

np.empty 는 shape만 주어지고 비어있는 ndarray 생성(메모리 초기화가 되지않음)

identity

np.eye단위 행렬을 생성함

diag

np.diag대각선 행렬 추출

axis

모든 operation function을 실행할때 기준이되는 dimension 축

axis = 0 은 shape[0] 기준 axis =1은 shape[1]기준

concatenate

vstack

로우 단위로 붙이는 것 =np.cocatenate((a,b),axis=0)

hstack

컬럼 단위로 붙이는 것 =np.cocatenate((a,b),axis=1)

newaxis

축을 그냥 하나 늘리는 것

array operation

element-wise operation

array간 shape이 같을 때 일어나는 연산

broadcasting

스칼라 - 벡터 와 벡터 - 행렬 간의 연산도 지원

and , any

파이썬 같은 로직으로 실행

np.where

np.where(a>5) 하면 값이 5보다 큰 인덱스 값 반환

np.isnan(a) 하면 값이 nan인지 아닌지 True,Fasle 반환

np.isfinite(a) 하면 값이 무한값인지 아닌지 True,False 반환

argmin & argmax

array내 최대값 또는 최소값의 index를 반환함

axis와 같이 사용 가능

axis 0 은 컬럼기준 , axis 1은 로우 기준

argsort

작은 값 순서대로 인덱스 반환

boolean index

index가 True인 값만 추출하는 것

  • 기존 배열 개수 안에서만 가능함

fancy index

numpy는 array를 index value로 사용해서 값 추출 가능

  • interger를 사용해야함
  • 기존 array의 배열을 넘어서 개수를 가질 수 있음
  • 다만 index가 최대 개수를 넘어서면 안됨

numpy의 i/o(in,out)

'np.savetxt. np.save,np.load` 와 같은 명령어를 통해 입출력 가능

판다스

Pandas

  • 구조화된 데이터의 처리를 지원하는 Python라이브러리
  • paneldata→pandas
  • 고성능 array계산 라이브러리인 numpy와 통합하여, 강력한 “스프레드시트”처리 기능을 제공
  • 인덱싱,연산용 함수,전처리 함수 등을 제공함
  • 데이터 처리 및 통계 분석을 위해 사용

Series

  • DataFrame중 하나의 column에 해당하는 데이터의 모음 Object

DataFrame

  • Data Table 전체를 포함하는 Object

unstack() :groupby로 묶어진 데이터를 풀어줌 ↔ stack()

swaplevel() : groupby 순서를 바꿔줌

sort_values() : 값을 기준으로 정렬

groupby - grouped

groupby에 의해 split된 상태를 추출 가능함(key,value 로 튜플형태로 확인 가능)

groupby 자체는 제네레이터로 보기 편한 상태가 아니지만 출력이나 타입을 지정해두면 확인이 가능하다

aggregation : 그룹별로 연산하여 컬럼별로 요약 출력

transformation : 그룹별로 컬럼마다 모든 값에 동일한 연산 적용하고 출력

fillter : 그룹별로 조건을 만족하는 값만 출력

pivot table

  • index 축은 groupby와 동일함
  • column에 추가로 labeling 값을 추가하여 value에 숫자형 값을 aggregation 하는 형태

cross tab

  • 두 칼럼에 교차 빈도, 비율, 덧셈 등을 구할 때 사용
  • pivot table의 특수한 형태
  • user-item rating Matrix 등을 만들 떄 사용 가능함

merge

  • 두개의 데이터를 하나로 합침
  • pd.merge(a,b , on = ‘ ‘) 의 형식

join

  • pd.merge에서 how를 통해 설정 가능
  • 아무것도 없으면 inner임
  • 붙일때 둘다 컬럼이 있으면 x,y를 해야할때가 있음 이럴때 right_index = True , left_index = True를 통해 순서 정렬하기

concat

  • 데이터를 그냥 열기준 또는 로우 기준으로 붙이는 것
  • pd.concat([a,b]) 형식으로 사용
  • import os후os.path.join을 통해 사용하여 파일 이름을 리스트에 저장
  • pd.concat으로 각기 다른 데이터를 붙일 수 있다.

Database connection

  • import sqlite3 Data loading시 db connection 기능을 제공함
  • DB에 있는 정보를 데이터프레임으로 가져와 로딩하는 방법(Pandas persistence)
반응형

'Study > AI' 카테고리의 다른 글

[Math] 경사하강법  (0) 2023.03.12
[Math] 벡터와 행렬  (0) 2023.03.12
[Python] 예외 처리와 파일 및 로그  (0) 2023.03.12
[Python] 객체 지향, 모듈 및 패키지  (0) 2023.03.12
[Python] 파이썬의 기초문법  (0) 2023.03.12