Pandas 데이터 분석하기 — describe, value_counts, groupby로 데이터 요약하고 머신러닝 준비하기
·
AI Journey/Pandas
깨끗해진 데이터에서 의미를 찾아보자 지난 글에서는 우리가 사용하던 CSV 데이터를 직접 정리했습니다.처음에는 이런 문제가 있었습니다.결측치중복 데이터문자열 표기 불일치자료형 문제그리고 정제가 끝난 뒤 데이터는 다시 80명의 학습자 데이터가 되었습니다.하지만 여기서 한 가지 질문이 생깁니다.데이터를 깨끗하게 만들었으면 이제 무엇을 해야 할까? 데이터를 정리하는 것 자체가 목적은 아닙니다.우리가 정말 알고 싶은 것은 데이터 안에 들어 있는 정보입니다. 예를 들면 이런 질문입니다.어떤 과정을 듣는 학생이 가장 많을까?평균적으로 일주일에 몇 시간 공부할까?공부를 가장 많이 하는 학생은 누구일까?합격한 학생은 불합격한 학생보다 정말 공부를 많이 했을까?과정별 학습 시간에는 차이가 있을까? 이번 글에서는 Pan..
Pandas 데이터 정제 완전 정복 — 결측치, 중복, 문자열 데이터 정리하기
·
AI Journey/Pandas
더러운 데이터를 함부로 지우지 마세요 이번 글도 이전 글에서 사용한 ai_learning_dataset.csv를 계속 사용합니다. 지금까지 우리는 하나의 CSV 파일을 꽤 많이 살펴봤습니다.먼저 데이터를 불러왔고,import pandas as pddf = pd.read_csv("ai_learning_dataset.csv") 데이터의 전체적인 구조를 확인했습니다.df.head()df.shapedf.info()그리고 원하는 데이터만 골라내는 방법도 배웠습니다.df["study_hours"]df.loc[ df["attendance_rate"] >= 90, ["student_id", "study_hours", "passed"]] 그런데 #36 Pandas CSV 불러오기 에서 이미 이상한 점 몇 가..
Pandas 데이터 선택하기 — loc, iloc과 조건 필터링 쉽게 이해하기
·
AI Journey/Pandas
82개의 데이터에서 원하는 것만 골라내기 이번 글도 이전 글에서 사용한 ai_learning_dataset.csv를 계속 사용합니다. 지난 글에서는 CSV 파일을 Pandas로 불러오고 데이터의 상태를 확인했습니다.import pandas as pddf = pd.read_csv("ai_learning_dataset.csv")df.head()df.shapedf.columnsdf.dtypesdf.info() 그 결과 우리가 사용하는 데이터에는82개의 Row9개의 Column 이 있다는 것을 확인했습니다. 그리고 일부 Column에는 결측치가 있다는 사실도 발견했습니다.하지만 아직 데이터를 수정하지는 않았습니다.이번에는 다른 문제를 해결해보겠습니다.82개의 Row와 9개의 Column이 있다고 해서 항상 전..
Pandas CSV 불러오기 — 데이터를 받으면 가장 먼저 확인해야 할 것들
·
AI Journey/Pandas
CSV를 열었다면 분석부터 하지 마세요 이번 글부터 Pandas와 데이터 시각화 과정에서 공통으로 사용할 ai_learning_dataset.csv 파일을 사용합니다.예제를 직접 실행하려면 아래의 실습 파일을 준비해주세요. 지난 글에서는 Pandas가 왜 필요한지 알아보았습니다.NumPy가 숫자의 배열을 효율적으로 계산하는 데 강하다면,Pandas는 의미를 가진 표 형태의 현실 데이터를 다루는 데 강한 도구였습니다.그리고 Pandas의 핵심 자료구조인 DataFrame도 만들어봤습니다.이제 실제 데이터를 가져와보겠습니다.우리가 사용할 파일은 다음과 같습니다.ai_learning_dataset.csv그런데 파일을 받았다고 바로 평균을 계산하거나 그래프를 그리기 시작해도 될까요?아닙니다.새로운 데이터를 받..
Pandas란 무엇일까? NumPy Array가 있는데 DataFrame이 필요한 이유
·
AI Journey/Pandas
AI 데이터는 처음부터 깨끗한 배열이 아니다 NumPy Array로도 행과 열을 다룰 수 있는데, 왜 Pandas라는 새로운 라이브러리를 또 배워야 할까요?지난 NumPy 시리즈에서는 AI가 데이터를 어떻게 숫자의 배열로 바라보는지 살펴보았습니다.우리는 다음과 같은 내용을 배웠습니다.ArrayShapedtypeIndexingSlicingVectorizationBroadcastingVectorMatrix그리고 마지막에는 이미지까지 NumPy Array로 표현했습니다.이쯤 되면 자연스럽게 이런 생각이 들 수 있습니다."NumPy로 데이터도 저장하고 계산할 수 있는데 Pandas는 왜 필요한 거지?"좋은 질문입니다.실제로 NumPy만으로도 많은 데이터를 처리할 수 있습니다.하지만 우리가 현실에서 만나게 되는..
컴퓨터는 이미지를 어떻게 숫자로 볼까? NumPy로 이해하는 이미지 데이터
·
AI Journey/NumPy
사진 한 장을 NumPy Array로 바꾸면 무엇이 보일까? 우리에게는 고양이 사진이지만, AI에게도 정말 '고양이'로 보일까요?우리는 사진을 보면 별다른 계산 없이 무엇이 찍혀 있는지 알아볼 수 있습니다.사진 속에 고양이가 있다면 고양이를 보고, 자동차가 있다면 자동차를 봅니다.하늘의 색깔이나 사람의 얼굴도 자연스럽게 구분합니다.하지만 컴퓨터가 처음부터 사진을 이렇게 바라보는 것은 아닙니다.컴퓨터에게 이미지는 결국 수많은 숫자의 집합입니다.조금 더 정확하게 표현하면,이미지는 Pixel의 값을 숫자로 표현한 다차원 배열입니다.그리고 이 문장을 이해하기 위해 지금까지 NumPy를 배웠다고 해도 과언이 아닙니다.이번 글에서는 새로운 NumPy 문법을 계속 추가하지 않습니다.대신 지금까지 배운ArrayShap..
AI는 왜 Vector와 Matrix를 사용할까? NumPy로 이해하는 AI 데이터의 구조
·
AI Journey/NumPy
AI가 세상을 숫자로 바라보는 방법 AI에게 사진도, 사람도, 문장도 결국 숫자입니다. 그렇다면 그 많은 숫자를 어떻게 정리해서 모델에게 전달할까요?지금까지 NumPy를 배우면서 우리는 계속 배열(Array) 을 다뤘습니다.import numpy as npdata = np.array([10, 20, 30])처음에는 이렇게 생각했을 수도 있습니다."AI 공부를 하는데 왜 계속 배열을 배우는 거지?" Array를 만들고,data.shapeShape를 확인하고,data[0]Indexing으로 하나를 선택하고,data[1:3]Slicing으로 범위를 선택하고,data * 2Vectorization으로 배열 전체를 계산하고,data + offsetBroadcasting으로 Shape가 다른 배열까지 계산했습니다..
NumPy Broadcasting 완전 정복! Shape가 다른 배열을 계산하는 원리 쉽게 이해하기
·
AI Journey/NumPy
크기가 다른 배열은 어떻게 함께 계산될까? 배열의 Shape가 다르면 계산할 수 없을까?지금까지 NumPy Array를 만들고, Shape와 dtype을 확인하고, 원하는 위치와 범위를 선택하는 방법을 배웠습니다.이제 배열을 저장하고 선택하는 단계를 넘어, 본격적으로 배열끼리 계산하는 방법을 알아볼 차례입니다.먼저 다음 두 배열을 살펴보겠습니다.import numpy as npa = np.array([10, 20, 30])b = np.array([1, 2, 3])print(a + b)실행 결과[11 22 33]두 배열의 Shape는 같습니다.a.shape → (3,)b.shape → (3,)NumPy는 같은 위치에 있는 원소끼리 더합니다.10 + 120 + 230 + 3여기까지는 어렵지 않습니다.그런데..