Eat Study Love

먹고 공부하고 사랑하라

Data Science/Numpy & Pandas

Numpy / Pandas 수치형, 범주형 기술통계

eatplaylove 2023. 1. 23. 23:37

1. Numpy로 array 만들기

 

 일단 import numpy 때리고

import numpy as np
np.array([1,2,3])
np.array([[1,2],[3,4]])
 
array([[1, 2],
       [3, 4]])
np.array([1,2,3,4]).reshape((2,2))
 
array([[1, 2],
       [3, 4]])
 
 
Numpy 인덱싱 / 슬라이싱
 
 
 

array.ndim  = 차원의 수

array.shape = 모양

array.sum() / std() / var() 등등 numpy array 공식 많다.

 

# array.dtype  데이터타입

# 그 외 다양한 함수

# In[ ]:


nums = np.array([1,2,2,3])
nums


# In[ ]:


set(nums) # 집합 = 중복을 허용하지 않는다. -> 고유값 뽑아내기


# In[ ]:


len(nums) # 원소의 개수, 1차원 arrayy의 길이


# In[ ]:


np.unique(nums) #중복 제거 후 고유한 것만 남겨라


# In[ ]:


len(np.unique(nums))


# range의 업그레이드 버전

# In[ ]:


np.arange(3,10,2) # 3에서 10까지 2 간격으로 수열을 만드는 함수

                    # range는 시작이 무조건 0이지만 arange는 시작점, 간격 설정 가능


# In[ ]:


nums


# In[ ]:


np.where(nums == 2, 'yes', 'no') # True를 yes, False를 no로 반환


# Pandas의 객체
# Series 개요!
# Pandas 객체의 1차원 객체
# value + index로 구성
# Series() 함수 + 대괄호로 생선한다

# In[ ]:


import pandas as pd


# In[ ]:


test = pd.Series([1,2,3])
test


# In[ ]:


pd.Series([4,5,6], index = [1,2,3])


# 사실 Pandas는 Numpy의 기능 대부분을 포함한 것이고 거기다가 기능을 몇개 추가한 것

# 대표적인 Pandas의 Method
# test.sum()
# test.min()
# test.max()
# test.mean()
# test.std()
# test.skew() #왜도
# test.kurt() #첨도
# test.unique() #고유값
# test.idxmax() #최대값의 index
# test.isin(['a','b']) #포함 여부 검사

# In[ ]:


test = pd.Series([2,4,4,5,6,7,7,8,9])
test


# In[ ]:


test.idxmax()


# In[ ]:


test.idxmin()


# In[ ]:


test.isin([6,7])


# In[ ]:


test.isin([6,7]) + 0 # True = 1 , False = 0


# In[ ]:


test.isin([6,7]).sum()


# In[ ]:


test


# In[ ]:


test[[1,5]]


# In[ ]:


test[[2,3]]


# In[ ]:


test[:-1]


# DataFrame 개요
# Pandas 객체의 2차원 객체
# value와 row/column index로 구성되어 있다.
# 변수별로 문자/숫자 등 다른 속성 지정 가능
# 기본적으로 Dict를 활용해서 생성한다

# In[ ]:


pd.DataFrame([1,2,3],[4,5,6])


# In[ ]:


pd.DataFrame({'a':[1,2,3],'b':[4,5,6]})


# In[ ]:


pd.DataFrame([[1,2],[3,4],[5,6]],columns = ['a','b'])


# In[ ]:


pd.DataFrame(np.arange(4,11,2).reshape((2,2)),columns = ['가','나'])


# crosstab
# 두 변수를 조합하여 살펴볼 때 사용하는 Pandas의 함수
# normalize 인자에 True, 1, 0 값을 할당하여 값을 정규화 할 수 있다

# groupby
# 특정 변수를 기준으로 요약 연산을 할 때 활용하는 Method
# 두 개 이상의 변수를 기준으로 연산살 ㅎ=경우엔, 변수명을 List로 묶는다.

# In[ ]:


df = pd.DataFrame({'a':np.arange(5),'b':[1,1,1,3,4]})
df


# In[ ]:


pd.crosstab(df['a'],df['b']) # column a , b 조합 비율 확인 가능