정형 데이터 타입
정형 데이터는 표처럼 규칙적이고 정해진 형태로 되어 있는 데이터를 말해.
예를 들어, 초등학교에서 사용하는 출석부를 생각해보자. 출석부에는 이름, 반, 번호, 출석일수 같은 정해진 칸이 있어. 모든 학생이 그 칸에 맞춰서 자신의 정보를 적게 돼. 이런 방식처럼, 정형 데이터는 어떤 형식과 규칙을 가지고 있어.
예를 들어보자
- JSON:
- 구조: { "이름": "홍길동", "나이": 10, "반": "3-1" }
- 설명: 이름, 나이, 반 같은 정해진 항목에 정해진 방식으로 정보를 적어.
- HTML:
- 구조: <html><body><h1>홍길동</h1></body></html>
- 설명: 웹 페이지에서 제목, 본문 같은 정해진 태그에 맞춰서 내용을 적어.
- CSV:
- 구조: 이름,나이,반\n홍길동,10,3-1
- 설명: 콤마(,)로 구분된 정해진 칸에 맞춰서 정보를 적어.
- HDF5:
- 구조: 파일 안에 정해진 구조로 데이터를 저장
- 설명: 대용량 데이터를 체계적으로 관리하기 위한 파일 형식.
공통점
이 모든 것들은 데이터를 일정한 형식으로 정리하고 보관하는 방법을 가지고 있어. 그래서 데이터를 쉽게 찾고, 읽고, 쓸 수 있어.
정형 데이터의 장점
- 규칙적이라서 컴퓨터가 쉽게 이해하고 처리할 수 있어.
- 표처럼 일정한 형식이 있어서 사람들이 쉽게 읽고 쓸 수 있어.
JSON (JavaScript Object Notation)
개요
- 포맷: 텍스트 기반의 데이터 교환 형식.
- 구조: 키-값 쌍으로 이루어진 데이터 객체.
- 장점: 가볍고, 사람이 읽기 쉬우며, 기계가 파싱하기 쉬움.
- 단점: 이진 데이터 저장에 비효율적, 대용량 데이터에 비효율적일 수 있음.
사용 사례
- 웹 개발: 클라이언트와 서버 간 데이터 교환.
- API: RESTful API의 응답 형식으로 사용.
- 구성 파일: 설정 정보를 저장하는 데 사용.
주로 사용하는 사람들
- 웹 개발자, 백엔드 개발자, 프론트엔드 개발자, 데이터 과학자.
HTML (HyperText Markup Language)
개요
- 포맷: 웹 페이지를 구성하는 마크업 언어.
- 구조: 태그를 이용하여 문서의 구조를 정의.
- 장점: 웹 브라우저에서 직접 렌더링 가능, 사람이 읽고 쓰기 쉬움.
- 단점: 데이터 저장 및 전송에 비효율적.
사용 사례
- 웹 개발: 웹 페이지의 구조를 정의.
- 문서화: 다양한 문서를 웹 페이지로 변환.
주로 사용하는 사람들
- 웹 개발자, 디자이너, 콘텐츠 제작자.
CSV (Comma-Separated Values)
개요
- 포맷: 텍스트 기반의 데이터 저장 형식, 각 행이 콤마로 구분된 값들로 이루어짐.
- 구조: 간단한 행-열 구조.
- 장점: 간단하고, 많은 도구와 호환성 높음.
- 단점: 메타데이터 저장 불가, 대용량 데이터 처리에 비효율적.
사용 사례
- 데이터 저장: 표 형식의 데이터를 저장.
- 데이터 교환: 간단한 데이터 교환 형식으로 사용.
- 스프레드시트: 엑셀과 같은 스프레드시트 프로그램에서 사용.
주로 사용하는 사람들
- 데이터 과학자, 비즈니스 분석가, 연구원.
HDF5 (Hierarchical Data Format version 5)
개요
- 포맷: 대용량 데이터를 효율적으로 저장하는 바이너리 파일 형식.
- 구조: 계층적 구조로 데이터셋과 메타데이터를 저장.
- 장점: 대용량 데이터 처리에 효율적, 다양한 데이터 타입 저장 가능.
- 단점: 복잡한 구조, 텍스트 기반 도구와의 호환성이 낮음.
사용 사례
- 과학 연구: 대규모 과학 데이터 저장 및 분석.
- 기계 학습: 대규모 데이터셋 저장.
- 공학: 시뮬레이션 데이터 저장.
주로 사용하는 사람들
- 과학자, 엔지니어, 데이터 과학자, 연구원.
공통점
- 데이터 저장 및 교환: 모두 데이터를 저장하거나 교환하는 데 사용됨.
- 다양한 도구와 호환성: 대부분의 데이터 분석 도구와 호환됨.
- 표준화된 형식: 표준화된 형식으로 정의되어 있음.
포맷 | 개요 | 장점 | 단점 | 사용 사례 | 주로 사용하는 사람들 |
---|---|---|---|---|---|
JSON | 텍스트 기반의 데이터 교환 형식 | 가볍고, 사람이 읽기 쉬움 | 이진 데이터 저장에 비효율적, 대용량 데이터 비효율적 | 웹 개발, API, 구성 파일 | 웹 개발자, 백엔드 개발자, 프론트엔드 개발자, 데이터 과학자 |
HTML | 웹 페이지를 구성하는 마크업 언어 | 웹 브라우저에서 직접 렌더링 가능 | 데이터 저장 및 전송에 비효율적 | 웹 개발, 문서화 | 웹 개발자, 디자이너, 콘텐츠 제작자 |
CSV | 텍스트 기반의 데이터 저장 형식 | 간단하고, 많은 도구와 호환성 높음 | 메타데이터 저장 불가, 대용량 데이터 비효율적 | 데이터 저장, 데이터 교환, 스프레드시트 | 데이터 과학자, 비즈니스 분석가, 연구원 |
HDF5 | 대용량 데이터 저장을 위한 바이너리 파일 형식 | 대용량 데이터 처리에 효율적 | 복잡한 구조, 텍스트 기반 도구와 호환성 낮음 | 과학 연구, 기계 학습, 공학 | 과학자, 엔지니어, 데이터 과학자, 연구원 |
정형 데이터 분석과 벡터 연산의 관계를 이해하기 위해, 먼저 두 개념을 간단히 설명해볼게.
벡터 연산
벡터 연산은 숫자의 목록(즉, 벡터)을 다루는 수학적 계산이야. 예를 들어, 두 벡터를 더하거나 빼거나, 각 요소를 곱하는 것 등을 말해. 벡터는 리스트나 배열처럼 숫자들이 나열된 형태라고 생각하면 돼.
정형 데이터는 보통 표 형식으로 저장되는데, 이 표의 각 열은 하나의 벡터로 생각할 수 있어. 예를 들어, 학생들의 수학 점수, 영어 점수 등이 각각 벡터가 될 수 있어. 벡터 연산을 사용하면 정형 데이터를 더 쉽게 분석할 수 있어. 다음은 정형 데이터 분석에서 벡터 연산이 어떻게 사용되는지 몇 가지 예를 통해 설명할게.
예시 1: 평균 구하기
각 학생의 수학 점수가 들어 있는 벡터가 있을 때, 이 벡터의 평균을 구하면 전체 학생의 수학 점수 평균을 구할 수 있어.
import numpy as np
# 학생들의 수학 점수
math_scores = np.array([90, 80, 70, 60, 85])
# 수학 점수 평균
average_math_score = np.mean(math_scores)
print(average_math_score) # 77.0
예시 2: 합계 구하기
각 매장의 판매량이 들어 있는 벡터가 있을 때, 이 벡터의 합계를 구하면 전체 매장의 총 판매량을 구할 수 있어.
# 각 매장의 판매량
sales = np.array([100, 200, 150, 300])
# 총 판매량
total_sales = np.sum(sales)
print(total_sales) # 750
예시 3: 두 벡터의 합
학생들의 국어 점수와 수학 점수가 있을 때, 각 학생의 총 점수를 구할 수 있어.
# 학생들의 국어 점수
korean_scores = np.array([85, 75, 65, 95, 90])
# 학생들의 수학 점수
math_scores = np.array([90, 80, 70, 60, 85])
# 총 점수
total_scores = korean_scores + math_scores
print(total_scores) # [175, 155, 135, 155, 175]
'공부방 > Upstage AI Lab 4기' 카테고리의 다른 글
7/10 학습일지 | 파이썬으로 그래프 그리기 (0) | 2024.07.10 |
---|---|
파이썬 판다스 데이터프레임 개념 잡기 (0) | 2024.07.10 |
7/9 학습일지 | 파이썬 판다스 Fancy Indexing, 피벗테이블 (1) | 2024.07.09 |
7/8 학습일지 | 파이썬 동적페이지 웹크롤링 (0) | 2024.07.08 |
웹크롤링 | 크롬 드라이브 최신 버전 설치하고 원하는 url 열기 (1) | 2024.07.06 |