본문 바로가기

공부방/Upstage AI Lab 4기

정형 데이터 타입 json, html, csv, hdf5과 벡터 연산

정형 데이터 타입

정형 데이터처럼 규칙적이고 정해진 형태로 되어 있는 데이터를 말해.

예를 들어, 초등학교에서 사용하는 출석부를 생각해보자. 출석부에는 이름, , 번호, 출석일수 같은 정해진 칸이 있어. 모든 학생이 그 칸에 맞춰서 자신의 정보를 적게 돼. 이런 방식처럼, 정형 데이터는 어떤 형식과 규칙을 가지고 있어.

예를 들어보자

  1. JSON:
    • 구조: { "이름": "홍길동", "나이": 10, "반": "3-1" }
    • 설명: 이름, 나이, 반 같은 정해진 항목정해진 방식으로 정보를 적어.
  2. HTML:
    • 구조: <html><body><h1>홍길동</h1></body></html>
    • 설명: 웹 페이지에서 제목, 본문 같은 정해진 태그에 맞춰서 내용을 적어.
  3. CSV:
    • 구조: 이름,나이,반\n홍길동,10,3-1
    • 설명: 콤마(,)로 구분된 정해진 칸에 맞춰서 정보를 적어.
  4. 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]