만족

[데이터사이언스] Numpy, Pandas, Dataframe 본문

[데이터사이언스] Numpy, Pandas, Dataframe

데이터사이언스 Satisfaction 2021. 10. 20. 20:34

Numpy: ndarray

numpy에서 제공하는 동일 타입의 다차원 배열

 

import numpy as np

#길이가 15인 1차원 행렬
a= np.array(15)
#3*5 2차원 배열로 재배열
a= a.reshape(3,5)

#(행 갯수, 열 갯수) 반환
#(3,5)
a.shape

#차원 수
#3*5는 2차원 배열
a.ndim

#각 열의 타입
a.dtype.name

#각 열의 바이트 크기
a.itemsize

#데이터 갯수; 행 갯수*열 갯수
#3*5= 15
a.size

 

ndarray의 수학적 연산

#list를 ndarray로 변환
A= np.array([20,30,40,50])

#[0,1,2,3]
B= np.arange(4)

#행렬의 덧셈/뺄셈연산은 행/열 크기가 동일해야 한다
C= A- B

#행렬의 각 원소를 제곱
D= B**2

# 각 원소에 대해 비교연산 결과 리턴
# [True, True, False, False]
E= A<35

 

list vs ndarray

list

하나의 리스트 안에 여러 타입의 원소가 존재할 수 있다.

벡터화 연산(병렬연산) 불가

 

ndarray

각 원소의 타입은 모두 동일

연속적인 메모리 공간에 원소가 존재

벡터화 연산(병렬연산) 가능

list보다 연산속도가 더 빠르다

 

ndarray의 행렬연산

A= np.array([[1,1], [0,1]])

B= np.array([[2,0], [3,4]])

#A와 B의 각 대응되는 원소끼리의 곱으로 새로운 행렬 리턴
#C= [[2,0], [0, 4]]
C= A*B

# AxB (행렬연산)
# A의 행크기와 B의 열크기가 동일해야 한다
# D= [[5,4], [3,4]]
D= A@B

X= np.array([1,2,3,4])
Y= np.array([1,0,1,0])

# 행렬의 내적
# 행렬의 각 대응되는 원소끼리의 곱의 합
# 결과값은 상수(스칼라)
# E= 4
E= np.inner(X, Y)


Pandas

Python Data Analysis Library

 

Dataframe

Pandas가 제공하는 테이블 형태의 데이터 분석을 위한 자료구조

 

ndarray, dict, list등과 데이터 호환, 변환이 가능하다.

 

Pandas/Dataframe을 이용해 excel 파일을 읽어오기

import pandas as pd

xl_file= 'excel_file.xlsx'

#xlsx에서 엔진 오류가 날 경우 다음과 같이 변경
#df= pd.read_excel(xl_file, engine='openpyxl')

df= pd.read_excel(xl_file)
print(df)

 

Dataframe의 구조

  상품명 상품가격
0 사과 1000
1 바나나 2000

상품명/상품가격을 columns라 하고,

0,1...(row) 을 index라고 한다.

 

 



Comments