CS66 [seaborn] barplot 기초 포스팅 목적 matplotlib만 썼는데.. 갑자기 seaborn이 등장했다. 무엇인지 간단하게만 알아보자. Seaborn? seaborn을 쓰는 이유 matplotlib의 확장판으로 이해하면 된다. 더 간결하고, 시각적으로 더 이쁘다. 아래 간단한 barplot 예제에서 코드가 얼마나 가벼워지는지 확인하자 예제코드 붓꽃 데이터를 불러와 seaborn의 barplot에 그대로 넣어보는 만행을 저질러보겠다. import pandas as pd import matplotlib.pyplot as plt from sklearn.datasets import load_iris # 붓꽃 데이터를 df에 넣는 과정 iris = load_iris() df = pd.DataFrame(iris.data, columns=ir.. CS/Python 2022. 10. 18. 데이터분석: 카디널리티 (Cardinality) 포스팅 목적 데이터분석에서 심심찮게 등장하는 카디널리티가 무엇인지 간단하게 개념 정리. Cardinality? 사전적 정의 카디널리티 자체의 의미는 쉽지만, 잊어버리기 쉬우므로 cardinal이라는 단어의 뜻부터 알아보자 cardinal number 기수. 우리가 일반적으로 쓰는 1, 2, 3, ... 의 숫자를 의미한다. 반댓말은 서수, ordinal number. 5th, 22nd 등을 뜻한다. 데이터분석에서 cardinality 카디널리티는 데이터집합의 유니크한 원소 개수를 뜻한다. 예를들어, 성별은 원소의 종류가 '남', '여' 두 가지이므로 cardinality가 2이다. 반면에, 주민번호의 경우 모든 원소가 유니크하므로 high-cardinality라 말할 수 있다. 맺음말 간단하쥬? CS/Python 2022. 10. 18. graphviz 설치 및 기본 사용법 개요 포스팅 목적 결정트리나 네트워크 등을 시각화해주는 라이브러리 graphviz에 대해 간단하게 알아본다. 이로 만들어진 그래프를 dot graph라 하며, dot language를 이용하여 그래프를 나타낼 수 있다. 자세히 쓸 일은 아직 없어서, 기본적인 설치방법과 실행법만 포스팅한다. 설치방법 1. graphviz 실행파일을 설치한다 홈페이지에 들어가 자신의 운영체제에 맞는 EXE installer를 다운받는다. 웬만한 경우에 윈도우는 64-bit을 받으면 된다. 2. 래퍼모듈 설치 설치한 graphviz를 컨트롤하는 wrapper 모듈을 설치해야한다. 커맨드창에서는 pip install graphviz, 아나콘다에서는 conda install python-graphviz 를 입력해 설치한다 3. OS .. CS/Python 2022. 10. 18. [matplotlib] 기본 그래프그리기: plot() 함수 포스팅 목적 matplotlib의 pyplot.plot() 함수의 기본적인 사용법을 정리한다. pyplot을 plt로 임포트하기때문에 plt.plot()으로 자주 사용한다. 함수원형 매뉴얼에 나온 콜시그니쳐를 보자. 1. [x] 첫번째 인자는 [x]이며, 괄호가 쳐져있다는 것은 생략이 가능하다는 뜻이다. y값 리스트만 넣어도 plot이 가능하다. 주어진 y값 리스트에 맞춰서 0...n-1개의 x값 인덱스 어레이가 생성된다. 2. [fmt] [fmt]는 색, 마커, 라인스타일을 지정할 수 있는 포매팅 스트링을 말한다. 'r*--'를 지정하면, 색은 'red', 마커는 '*', 라인스타일은 '--'라는 뜻이다. 연습예제 import matplotlib.pyplot as plt y1=[2,2,1] # x1은 .. CS/Python 2022. 10. 13. [numpy] meshgrid 함수 알아보기 포스팅 목적 numpy의 meshgrid 함수를 이해하고 사용방법에 익숙해지기 위함이다. 왜 이해를 못했는지 모르지만, 이상하게 바로 직관적으로 이해를 못했었다. 알고나니 어려운 것은 아닌데, 포인트를 못 잡으면 헤맬 수도 있겠다 싶다. meshgrid 함수 기본 사용법 Parameters 일단 필수인자로, xi 배열을 받는다. x-y평면에서 2차원 그리드를 만들 것이면 그리드로 지정할 x범위와 y범위를 넘겨준다. x-y-z평면에서 3차원 그리드를 만들 것이면 3차원 입체 그리드로 지정할 x범위, y범위, z범위를 넘겨준다. 선택옵션으로는 indexing이 있다. 디폴트로 indexing='xy'인 Cartesian indexing방식이고, indexing='ij'를 주면 matrix indexing을 .. CS/Python 2022. 10. 7. [numpy] linspace 기본 사용법과 arange와의 차이점 포스팅 목적 자주 등장하지만 아직 잘 모르겠는 numpy linspace에 대하여 간단히 사용법을 알아보고 익힌다. np.linspace()함수를 사용하고 보니 np.arange()와 매우 유사한데, 차이점도 짚고 넘어가자. linspace 함수개요 "Return evenly spaced numbers over a specified interval." Linspace는 아마 Linearly Spaced의 약자인 듯 하다. 인자로는 linspace(start, stop, num)을 받는다. 시작지점과 끝점은 필수인자이며, num값은 주어지지 않았을 때 기본적으로 50의 값을 갖는다. 즉 50등분한다. 반환값은 당연히 1차원 ndarray이다. linspace 예제코드와 모양새를 보자! 1부터 5까지 5등분.. CS/Python 2022. 10. 7. subplot, subplots 함수 사용법과 차이점 포스팅 목적 matplotlib.pyplot의 subplot과 subplots 함수를 공부하고 익히기 위함 공부순서 더 간단한 subplot먼저 본 후 subplots을 다룬다. 마지막엔 차이점을 간략하게 정리해본다. subplot 함수 기본 사용법 인자 subplot()의 인자 3개는 순서대로 1)행의 수, 2)열의 수, 3)번호를 나타낸다. 행과 열을 받는다는건, 매트릭스가 나온다는 거겠지? 이 매트릭스 구역에 번호가 있으며, 세번째 인자 index로 이를 지정해 사용할 수 있다. 번호는 1부터 매기며, 순서는 왼쪽 위부터 오른쪽으로, 그 다음줄 순이다. 리턴값 'axes'라 불리는 걸 리턴한다. 어떤 projection이 일어났느냐에 따라 다른 종류의 axes 클래스를 리턴한다. 예제코드와 실행결과.. CS/Python 2022. 10. 5. make_classification 함수로 랜덤 데이터셋 생성하기 포스팅 목적 사이킷런의 make_classification() 함수에 대해서 공부한다 오늘의 목표 랜덤 데이터셋을 생성하여 스캐터 그래프를 그릴 수 있게 된다. 피쳐 2개, 클래스 3개짜리 랜덤 데이터셋을 만들어 그린다. make_classification() 함수 make_classification 함수는 sklearn.datasets에 있다. 분류를 위한 랜덤 데이터셋을 생성할 수 있도록 도와주는 함수다. 함수원형 리턴값으로는 피쳐 ndarray, 레이블 ndarray를 받는다. 실습 코드 from sklearn.datasets import make_classification X_features, y_labels = make_classification(n_samples=300, n_features=2.. CS/Python 2022. 10. 5. QUICK SORT 정리..[C] 퀵정렬 분할정복법(divide ans conquer) 사용한다. O(NlogN) 시간 복잡도를 가진다. 오름차순 기준) 개념: 피봇값을 기준으로 더 작은 수를 왼쪽으로, 더 큰 수를 오른쪽으로 옮긴다. 왼쪽부터 하나씩 확인하며 피봇보다 큰 값을 찾고, 오른쪽부터 하나씩 확인하며 피봇보다 작은 값을 찾아, 이 둘의 위치를 바꾼다. 그러다 엇갈리게 되면, 피봇값과 엇갈린 앞에 값 위치를 바꾼다. 코드로 이해하는 게 제일 나을 듯 하다. 소스코드를 깔끔하게 하려면 재귀함수로 구현 #include void quickSort(int *data, int start, int end) { printf("called! start: %d, end: %d\n", start, end); for(int i=start;i= en.. CS/Algorithm 2022. 7. 27. malloc 기본적인 사용법 malloc 기본적인 사용법 이건 왜 외워지지가 않냐.. 함수 원형 #include void* malloc(size_t size); 성공 시 할당한 메모리의 첫 번쨰 주소 리턴, 실패시 null 리턴 사이즈를 넣어줘야하므로 int배열이라면 sizeof(int)*길이 를 하면 된다. void* 리턴이라서, char* 배열이면 캐스팅을 명시적으로 해주어야한다. 쓰고 난 뒤 free 꼭 해줘야한다. 마찬가지로 에 있고, free(ptr) 넣어주면 된다. CS/C++ 2022. 7. 22. 문자와 숫자 간 변환법(char to int, int to char) 문자와 숫자 간 변환법(char to int, int to char) int to char int형을 char배열에다가 넣으려면? sprintf()를 이용하면 된다 int num = 3; char str[15]; sprintf(str, "%d", num); char* to int 에 있는 atoi() 함수를 이용하면 된다. 자매품 atof(char to double), atol(char to long int)도 있다. 사용법 char str[10] = "123"; int num = atoi(str); 하지만, char* 형을 int로 바꾸는 것임에 유의해야 한다. 만약 str[10] 배열 안의 수 123이 1,2,3이고 이를 숫자로 바꾸려면? char*을 만들어줘도 된다. char* arr; arr = .. CS/C++ 2022. 7. 22. floor, ceiling 등 함수를 쓰지 않고 반올림 간단하게 구현하기 floor, ceiling 등 함수를 쓰지 않고 반올림 간단하게 구현하기 반올림 구현하기 floor 같은 함수를 써도 되지만, int형 캐스팅을 이용해 간단하게 구현할 수 있다. int res = (double)sum / n + 0.5; 양수값의 경우 +0.5하고 인트 캐스팅 음수값의 경우 -0.5하고 인트 캐스팅 CS/C++ 2022. 7. 22. 이전 1 2 3 4 5 6 다음