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여기까지는 어렵지 않습니다.그런데..
NumPy Slicing 완전 정복! 배열에서 원하는 데이터 범위를 자유롭게 선택하는 방법
·
AI Journey/NumPy
배열을 자르는 순간, 데이터 분석이 시작된다 원하는 데이터 하나를 찾았다면, 이제 필요한 범위만 잘라낼 차례입니다. 지난 글에서는 NumPy의 Indexing을 배웠습니다.Indexing은 배열에서 특정 위치의 데이터 하나를 선택하는 방법입니다.scores[0]위 코드는 첫 번째 점수 하나를 가져옵니다.하지만 실제 데이터 분석이나 AI 작업에서는 데이터 하나보다 여러 개의 값을 한꺼번에 선택하는 경우가 훨씬 많습니다.예를 들어 다음과 같은 작업입니다.첫 번째부터 다섯 번째 데이터까지 가져오기최근 데이터 100개만 선택하기이미지의 가운데 영역만 잘라내기여러 행과 열 중 필요한 범위만 선택하기NumPy에서는 배열의 연속된 범위를 선택하는 작업을 Slicing(슬라이싱) 이라고 합니다.이번 글에서는 가장 기본..
NumPy Indexing 완전 정복! 원하는 데이터만 선택하는 가장 쉬운 방법
·
AI Journey/NumPy
배열 속에서 원하는 데이터를 찾는 법 "AI는 모든 데이터를 항상 사용할까?" 만약 학생들의 시험 점수가 저장된 배열이 있다고 가정해 보겠습니다.85 90 78 96 88 모든 점수를 사용할 수도 있지만, 때로는 첫 번째 학생의 점수만 확인하고 싶을 수도 있습니다.혹은 마지막 학생의 점수만 보고 싶을 수도 있습니다.이미지라면 어떨까요?사진 전체가 아니라 특정 픽셀 하나만 확인하고 싶을 수도 있습니다.CSV 데이터라면 특정 행만 확인하거나, 특정 열만 가져와야 할 수도 있습니다.즉, AI에서는 "데이터를 저장하는 것"만큼이나 "원하는 데이터를 정확하게 선택하는 것"이 중요합니다.NumPy에서는 이러한 작업을 Indexing(인덱싱) 이라고 합니다. 이번 글에서는 Indexing이 무엇인지부터 2차원 배열에..