본문 바로가기
300x250

Data Science90

[Pandas] 판다스 데이터프레임 기초 with 캐글 타이타닉 파일 판다스란 대부분 우리가 다루는 데이터는 행(Row)과 열(Column)으로 구성돼 있는 2차원 데이터다. 가장 효과적인 데이터 구조이면서 이해하기도 쉽기 때문인데, 판다스 라이브러리는 이런 2차원 데이터 핸들링을 효율적이고 편하게 만들어준다. csv나 txt, 등 다양한 유형의 "구분 기호로 칼럼이 분리된 파일"을 쉽게 데이터프레임으로 불러와서 작업할 수 있다. 판다스 데이터프레임 시리즈 차이 그럼 판다스 데이터프레임, pandas dataframe이란 무엇일까? 먼저 데이터프레임(Dataframe)은 위에서 말한 행과 열로 만들어진 2차원 데이터로, 여러 개의 칼럼을 가지는 데이터 구조체다. 만일 칼럼이 하나뿐이라면 이를 시리즈(Series)라고 부른다. 즉 DataFrame은 여러 개의 Series로.. 2022. 8. 7.
[Numpy] argsort 넘파이 정렬 내림차순까지 간단히 정리 넘파이 기초 개념과 핸들링은 오늘 포스팅으로 끝내고, 판다스에 대해서도 차근차근 정리해볼 예정이다! 마지막으로 알아볼 내용은 넘파이 행렬 정렬 방법이다. Numpy np.sort ndarray.sort 먼저 np.sort(배열명) 는 원래의 데이터는 그대로 유지한 채로 정렬된 행렬을 반환하고, 배열명.sort()는 행렬 자체를 정렬해서 변환하는 것이다. 반환되는 값은 None이라는 점! 해당 예제를 보면 3,1,9,5라는 array1이라는 배열이 있는데 np.sort(배열명) 식으로 하면 array1은 그대로지만 정렬된 행렬을 반환할 수 있다. 하지만 배열명.sort() 방식을 이용하면 반환된 값은 없지만 , array1이 정렬이 되어있음을 확인할 수 있다. 위의 방식은 default값인 오름차순으로 정.. 2022. 8. 5.
[Numpy] 넘파이 인덱싱 슬라이싱 팬시인덱싱 등으로 인덱스 반환하기 +찾기 넘파이 인덱싱은 ndarray의 특정 데이터를 골라서 반환하도록 만드는 것이다. 만약 한 개의 데이터 값을 선택하려면 ndarray 안에서 찾고자 하는 값의 인덱스를 [] 안에 입력하면 된다. 인덱스는 0부터 시작하므로, array라는 1차원 배열의 1번째 값을 선택하고자 한다면 array[0] array라는 1차원 배열의 3번째 값을 선택하고자 한다면 array[2] 와 같이 입력하면 된다. 마이너스 기호를 이용해 array[-1]과 같이 맨 뒤의 데이터를 찾을 수 있다. 맨 앞 데이터 인덱스는 0이고, 맨 뒤 데이터 인덱스는 -1이다. 이런 방식으로 특정 인덱스 값 변경도 가능하지만, ndarray에서는 원본 값이 바로 수정되어버리기 때문에 리스트로 변환하여 작업하는 경우가 흔하다.(리스트는 값을 바.. 2022. 8. 4.
[Numpy] 넘파이 reshape 차원 추가 축소 변경하기 ndarray를 다루다 보면 특정 차원으로 바꾸거나 크기를 변환해야 할 때가 있다. 넘파이 reshape는 그럴 때 유용하게 사용할 수 있는 일종의 method이다. ndarray.reshape(행,열) 형태로 크기를 지정해줄 수 있기 때문에 같은 데이터의 차원을 추가하거나 축소할 수 있다. 넘파이 reshape를 사용할 때 주의할 점이 있는데, 바로 전체 데이터가 10개인 경우 5x2 행렬이나 2x5 행렬과 같이 만들어야 한다는 점이다. 3x3처럼 불가능한 형태로 지정을 하면 아래와 같은 오류 메시지를 만나게 된다. ValueError : cannot reshape array of size 10 in shape(3,3) 1부터 20 사이, 10개의 홀수로 이루어진 배열을 생성해보았다. 1차원으로 생성된.. 2022. 8. 3.
[Numpy] 넘파이 배열 생성 arange range 차이+파이썬 빈 배열 만들기 ndarray, 즉 넘파이 배열 생성에는 주로 arange(), zeros(), ones()가 사용된다. 테스트용으로 파이썬 빈 배열 만들기나, 0 또는 1로 초기화해야 할 때 활용할 수 있도록 알아보자. arange range 차이 arange range 차이는 무엇일까? np.arange()는 range()와 마찬가지로 같은 간격의 정수 리스트를 생성한다. 'start값'부터 'stop값-1'까지 'step' 간격의 정수를 만들 수 있다. 하지만 그 결과값이 array 자료형이라서 계산하기 좀 더 편리하다는 장점이 있다. 그리고 range는 정수만 가능하지만, arange는 실수도 가능하므로 좀 더 다양하게 활용할 수 있다. 파이썬 빈 배열 만들기 empty zeros ones empty() : 모든.. 2022. 8. 2.
[Numpy] 넘파이 설치+차원 확인+데이터 타입 확인 및 변경 Numerical Python을 의미하는 넘파이는 머신러닝 주요 알고리즘의 기반이 되는 선형대수 기반의 프로그램을 파이썬에서 쉽게 만들 수 있도록 지원하는 패키지다. 루프를 사용하지 않고 대량 데이터의 배열 연산이 가능해지기 때문에, 빠른 배열 연산 속도를 얻을 수 있다는 큰 장점을 가지고 있다. 넘파이 패키지의 장점이 빠른 연산이기 때문에, C/C++과 같은 저수준 언어로 프로그램을 작성하고, 넘파이에서 호출하여 빠르게 연산하는 식으로 호출이 가능하다. 효율적으로 데이터를 주고받거나 API를 호출해 통합할 수 있다는 것! 구글의 대표적인 딥러닝 프레임워크, 텐서 플로우가 이러한 방식으로 만들어져 있다. 일반적으로 데이터는 2차원 형태의 행과 열로 이뤄졌기 때문에 판다스를 주로 사용하게 되고, 넘파이는 .. 2022. 8. 2.
Visual Studio Build Tools 설치 윈도우 환경에서 서드파티 패키지를 설치할 때, Microsoft Visual Studio Build Tools가 필요할 수 있다. 분류 모델 설계 시 사용되는 LightGBM과 추천 알고리즘 설계 시 사용하는 Surprise 패키지 설치를 위해서 Visual Studio Build Tools 2015 이상의 버전이 설치되어야 한다. Visual Studio Build Tools 설치 방법은 다음과 같다. 1. Google에 visual studio build tools를 검색해서 다운로드 페이지로 접속 2. 다운로드 페이지의 하단으로 이동해서 Visual Studio 2022용 도구-Visual Studio 2022용 빌드 도구 선택하여 다운로드 버튼 클릭(위에서 네번째) 3. vs_buildtools... 2022. 8. 1.
R을 사용하던 데이터 분석가는 왜 파이썬 머신러닝 공부를 시작했을까 우선 나는 R을 이용한 수업 및 프로젝트가 주였던 통계학과의 졸업생이다. 현재 나는 데이터 분석가+프로젝트 매니저가 혼합된 형태의 일을 하고 있는데, 이제부터 파이썬 머신러닝 공부를 시작하기로 결심하고 이를 실천에 옮기고 있다. 제목과 같이, R을 사용하던 나는 왜 Python으로, 그것도 파이썬 머신러닝 공부를 시작하게 되었을까? 그 이유를 말하기 전에 먼저 머신러닝의 개념을 설명하고자 한다. 머신러닝이란 머신러닝(Machine Learning)은 단연 이 4차 산업혁명 시대에 화두가 되는 몇몇 키워드 중 하나이다. 알파고를 계기로 한국에는 인공지능(Artificial Intelligence)이라는 개념이 널리 알려지게 되었으며, 자연스럽게 AI/ML 혹은 ML/AI처럼 두 단어를 묶어 이야기하는 경우.. 2022. 8. 1.
파이썬 머신러닝 완벽 가이드 일명 공룡책 일명 '공룡 책'으로 불리는 파이썬 머신러닝 완벽 가이드. 이 책은 아마 머신러닝의 교과서라고 해도 과언이 아닐 것이다. 개념 정리 뿐 아니라 실전에서 자주 사용되는 알고리즘, 코드를 작성해보고 캐글과 UCI 머신러닝 리포지토리에서 정제되지 않은 실습 데이터를 기반으로 데이터 전처리에서부터 머신러닝 알고리즘 적용, 하이퍼 파라미터 튜닝 등을 실제로 구현해볼 수 있는 정석과도 같은 책! 넘파이와 판다스부터 시작하기 때문에, 머신러닝의 기초가 없는 사람도 시작할 수 있으나 파이썬을 아예 처음으로 다뤄보는 사람이라면 따라가기 힘들 수 있다. 모두의 파이썬과 같은 책 혹은 유튜브 강의를 통해 기초적인 파이썬 공부를 한 다음 시작하는 것이 좋겠다는 생각이 든다. 주피터 노트북을 설치하고 사용하는 것도 당연히 알 .. 2022. 7. 31.