[데이터 분석 부트캠프] 데이터 분석을 위한 핵심 Tool Python(10)

2023. 7. 13. 18:32IT 라이프/패캠 데이터분석 부트캠프 9기

반응형

앞서 이미 공부했던 내용과 겹쳐서 우선 오늘 내용 중 더 쉽게 개념을 접근할 수 있는 내용 위주로 정리했다.

1. numpy

numpy 배열

  • 배열(array)은 요소의 갯수를 바꿀 수 없음
  • ndarray : N dimension array(다차원의 배열 자료구조) cf) 리스트는 1차원
  • 다차원의 개념
    • 배열 요소로 또 다른 배열을 가지는 배열을 말함
    • 즉 2차원 배열은 배열 요소로 1차원 배열을 가지는 배열이며, 3차원 배열은 배열 요소로 2차원 배열을 가지는 배열이고, 4차원 배열은 배열 요소로 3차원 배열을 가지는 배열임
  • 2차원 배열의 개념 이해
    • 아파트 동, 호수랑 같음
    • 예를 들어 101동(차원) 1층(row) 1,2,3,4호(column), 2층 1,2,3,4호가 있고, 각 호수에 사는 사람 수(value,값)는 다 다름
    • 따라서 아파트의 층은 달라질 수 있지만, 호의 갯수는 서로 같아야 함(진짜 아파트랑 똑같은 개념 적용됨). 호의 갯수가 서로 다르면 벡터 연산도 할 수 없으므로 에러가 남.(값이 없는 NaN, None, 0, False는 사는 사람이 없는 빈 집인거라 이거랑은 다른 얘기란 것도 알겠음)
    • 다차원 배열로 얼마든지 확대될 수 있음. 하지만 프로그램에서는 보통 2,3차원까지를 많이 사용

numpy를 써서 좋은 점

  • 리스트는 요소에 모두 연산을 하려면 for문을 써야 하지만 numpy 배열은 벡터연산이 되므로 속도도 빠르고 메모리도 적게 듦

 

2. pandas

Series

  • Series 클래스 = 1차원 array(=값) + 의미를 갖고 있는 인덱스
  • 인덱스로 접근 가능

DataFrame

  • 2차원 행렬 데이터에 인덱스를 붙인 것
  • 인덱스는 각각 columns, index 속성으로 접근 가능

 DataFrame에서 다시 봐야 할 부분

  • 열 데이터의 갱신, 추가, 삭제 (EDA때도 쓰임)
  • 행 인덱싱(반드시 정수+슬라이싱만 가능)
  • 열 인덱싱
  • 행,열 모두 인덱싱

 

정리

오늘은 좀 정신없이 진도를 나가다보니 마지막 부분은 강사님의 코드를 받아서 실행하고 개념을 익히는 정도로 학습했다.

가장 헷갈리는 부분이 pandas를 슬라이싱하는 부분이었는데 일부는 오늘 설명을 들으며 이해했다. 

강사님이 설명을 잘 해주셔서 개념 잡을 때 여러모로 도움을 받았기 때문에 pandas, numpy에 할당된 시간이 이렇게 짧았던 건 너무 아쉬웠다. 심지어 그 흔한 loc, iloc도 다루지 않았다...

그 와중에 가장 큰 수확은 2차원 array를 값으로 가지는 dataframe을 볼 때 행열로 보면 엄청 헷갈려서 매번 버퍼가 걸리는데 바깥부터 요소를 셀 때 2차원의 요소 몇 개, 1차원의 요소 몇 개, 이런식으로 세니 훨씬 나았다. 이렇게 해야 3차원 이상이 되었을 때 더 안헷갈린다고 하셨다. 물론 3차원부터는 별로 쓸 일이 없다고 하셨지만ㅎㅎ

 

 #패스트캠퍼스 #부트캠프 #데이터분석 #국비지원 
728x90
반응형