[AIVLE AI 6기] 무엇을 배우나요? 1주차-Python 프로그래밍, 라이브러리

·2024년 10월 15일
0

AIVLE

목록 보기
3/9
post-thumbnail

What is Numpy?

  • 빠른 수치 계산을 위해서 C언어로 만들어진 파이썬 라이브러리
  • 벡터와 행렬 연산에 편리한 기능들을 제공
  • 데이터분석용 라이브러리인 Pandas와 Matplotlib의 기반으로 사용됨
  • Array(벡터, 행렬) 단위로 데이터 관리

용어정리

  • Axis: 배열의 각 축(0: 행, 1: 열)
  • Rank: 축의 개수(차원)
  • Shape: 축의 길이

codes

import

import numpy
import numpy as np
from numpy import array

기본사용

a = np.array()
a.ndim # 차원 출력
a.shape # -> (행, 열)
a.dtype # 데이터 타입 출력

배열 만들기

a = np.array()
a = np.array([1, 2, 3, 4]) # list로 선언
np.zeros((2, 2)) # 0으로 채워진 배열
np.ones((1, 2)) # 1로 채워진 배열
np.full((2, 2), 7.) # 특정 값으로 채워진 배열
np.eye(2) # 단위 행렬(대각만 1)
np.random.random((2, 2))

Reshape

  • 기존 배열을 새로운 형태의 배열로 다시 구성하는 함수
  • (1, 6) -> (6, 1) 이렇게 변경 가능
np.reshape(li, (6, 1))
li.reshape(6, 1)
li.reshape(6, -1) # -1은 알아서 변환

기본 연산들

a, b

a+b
np.add(a, b)

a-b
np.subtract(a, b)

a*b
np.multiply(a, b)

a/b
np.divide(a, b)

a**b
np.power(a, b)

# 제곱근
np.sqrt(a)

집계 함수들

np.mean(), np.sum(), np.std()
# 전체 집계
print(np.sum(a))

# 열기준 집계
print(np.sum(a, axis = 0))

# 행기준 집계
print(np.sum(a, axis = 1))

# 가장 큰(작은) 값의 인덱스 반환
np.argmax(array, axis=0)
np.argmin(array, axis=0)

배열 데이터 조회: 인덱싱, 슬라이싱

arr1[1, 3]
arr1[1][3]

arr1[1,:] # arr[1]
arr[[1,2]]
arr[[1,2],:] 

arr1[시작:]
arr1[, 시작:]
arr1[시작:, 시작:]

조건에 따른 값 설정

 np.where(조건문, 참일 때 값, 거짓일 때 값)
 np.where(a>2, 1, 0)

What is Pandas?

데이터프레임과 시리즈

데이터프레임(Dataframe)?

  • 데이터 분석에서 가장 중요한 데이터 구조
  • 관계형 데이터베이스의 테이블 또는 엑셀 시트와 같은 형태 (2차원 구조)
  • 변수들의 집합 → 각 열을 변수라고 부름
  • 행(분석 단위), 열(정보)

시리즈(Series)?

  • 하나의 정보에 대한 데이터들의 집합
  • 데이터 프레임에서 하나의 열을 떼어낸 것(1차원)

codes

CSV파일에서 데이터 읽어 오기

  • pandas는 여러가지 파일을 읽어오는 것이 가능
path = './data.csv'
data = pd.read_csv(path)

데이터프레임 정보 확인

df.head(10) # 상위 10개
df.tail(10) # 하위위 10개

# 열 자료형
data.dtypes

# 모양 확인(행, 열)
df.shape
# 정보 확인
df.info()
# 기초 통계 정보 확인
df.describe()

데이터 정렬

# ascending: False(내림차순), True(오름차순-기본값)
# 인덱스 기준으로 정렬
data.sort_index(ascending=False)
# 정해서 정렬
data.sort_values(by='aaa')
data.sort_values(by=['aaa', 'bbbb'], ascending=[True, True])
temp.reset_index(drop = True)

고유 값 확인

data['MaritalStatus'].unique()
data['MaritalStatus'].value_counts()

기본 집계 메소드

data['MonthlyIncome'].sum()
data['MonthlyIncome'].max()
data[['Age', 'MonthlyIncome']].mean()
data[['Age', 'MonthlyIncome']].median()

데이터조회

  • 시리즈와 데이터프레임으로 조회가 가능
# 1차원(시리즈)로 조회
data['col']
data.col

# 2차원(데이터프레임)으로 조회
data[['col']]
data[['col1', 'col2']]

조건으로 데이터 조회

# 기본 loc[행 조건, 열 이름]
data.loc[data['tip'] > 6.0]

# 여러 조건 and, or -> &, |
data.loc[(data['tip'] > 6.0) | (data['ar'] < 6.0)]]

# 열 이름 지정해서 가져오기
data.loc[:, ['tip', 'size']]

# isin([값1, 값2]): 값이 리스트안에 있어야 조회
tip.loc[tip['day'].isin(['Sat', 'Sun'])]

# between: 사이에 있는 값
# 'left', 'right', 'neither', 'both': 포함 여부
tip.loc[tip['size'].between(1, 3)]
tip.loc[tip['size'].between(1, 3, 'left')]

집계 함수

# MonthlyIncome 합계
data['MonthlyIncome'].sum()

# MonthlyIncome, TotalWorkingYears 각각의 평균
data[['MonthlyIncome', 'TotalWorkingYears']].mean()

max()
min()
count()

groupby()

dataframe.groupby( ‘집계기준변수’, as_index = )[‘집계대상변수’].집계함수

  • 집계기준 변수 : ~~별 에 해당되는 변수 혹은 리스트. 범주형 변수 (예: 월 별, 지역 별 등)
  • 집계대상 변수 : 집계함수로 집계할 변수 혹은 리스트. (예 : 매출액 합계 )
  • as_index = True → 집계기준변수를 인덱스로 사용
  • [[tip']].sum() → 결과가 데이터프레임이 됨
# 집계 대상 열을 리스트로 지정
# day별 total_bill, tip 합계 조회
tip.groupby('day', as_index=False)[['total_bill', 'tip']].sum()

# 집계 기준 열을 여럿 설정 가능
# day + smoker별 total_bill, tip 합계 조회
tip.groupby(['day', 'smoker'], as_index=False)[['total_bill', 'tip']].sum()

# agg()
# day별 tip 합계, 평균, 최댓값, 최솟값
tip.groupby('day')['tip'].agg(['sum', 'mean', 'max', 'min'])
# day별 total_bill 평균, tip 합계
tip.groupby('day', as_index=False).agg({'total_bill':'mean', 'tip':'sum'})
profile
백엔드 개발자가 꿈인 컴공과

0개의 댓글

관련 채용 정보