목록CS (21)
꺼내먹는지식 준
Visual representation이 줄 수 없는 여러 설명들을 text가 추가 설명 잘못된 전달에서 생기는 오해를 방지 1) Title: 가장 큰 주제 (전체 figure, subplot figure, 위치) 2) Label: 축에 해당하는 데이터 정보 제공 (x축, y축을 설명하는 정보, 축과는 다른 정보) 3) Tick Label: 축에 눈금을 사용하여 스케일 정보를 추가 (큰 축, 작은 축 라벨 메이저 마이너 .. ) 4) Legend: 한 그래프에서 두가지 이상의 데이터를 분류하기 위해 보조적인 정보를 차트내에서 전달 5) Annotation(Text): 그 외의 시각화에 대한 설명을 추가 (거의 유사 Annotation은 화살표 추가 가능) fig, ax = plt.subplots() fi..
위치와 색은 가장 효과적인 채널 구분 위치는 시각화 방법에 따라 결정, 색은 직접 골라야 한다. 색이 가자고 있는 의미는 각각 다르다. (기업, 정당 색상, 온도, 등)좋은 색과 색 배치는 시각적으로 훌룡하다. 가장 중요한 것은 인사이트 전달이다. Color Palette 범주형(Discrete, Qualitative): 독립된 데이터를 표현하기 위한 독립된 색상 최대 10가지 색상 색의 차이로 구분하는 것이 특징 (채도 명도를 개별적 조정은 지양) # Group to Number groups = sorted(student['race/ethnicity'].unique()) gton = dict(zip(groups , range(5))) # Group에 따라 색 0, 1, 2, 3, 4 student['..
기본적 Grid 는 축과 평행한 선을 사용하여 거리 및 갑 정보를 보조적으로 제공 Default Grid 색(color): 무채색 (다른 표현 방해 안하도록) 순서(zorder): Layer 순서 맨 아래 큰 격자/ 세부 격자(which='major', 'minor', 'both') X축 Y축(axis = 'x','y','both') which : major ticks, minor ticks axis : x, y linestyle linewidth zorder np.random.seed(970725) x = np.random.rand(20) y = np.random.rand(20) fig = plt.figure(figsize=(16, 7)) ax = fig.add_subplot(1, 1, 1, aspec..
Scatter plot(산점도)은 점을 사용하여 두 feature 간의 관계를 알기 위해 사용하는 그래프 직교 좌표계에서 x축/ y축에 feature값을 매핑하여 사용 .scatter() 사용 예시) Scatter Plot 요소 1) 색 (color) 2) 모양 (marker) 3) 크기 (size) 점 자체는 2차원에서 그려지지만, 색 모양 크기를 사용하여 5 ~ 차원의 데이터도 그릴 수 있다. 코드 구현 fig = plt.figure(figsize=(7, 7)) ax = fig.add_subplot(111, aspect=1) np.random.seed(970725) x = np.random.rand(20) y = np.random.rand(20) s = np.arange(20) * 20 ax.scat..
Line Plot(꺾은 선 그래프, 선 그래프, line chart, line graph)은 연속적으로 변화하는 값을 순서대로 점으로 나타내고, 이를 선으로 연결한 그래프이다. 시간/ 순서에 대한 변화에 적합하여 추세 살피기에 용이 (시계열 특화) 신기하게 .line이 아니라 .plot() (가장 기본적이라 그런 듯 하다.) 코드 구현 fig = plt.figure(figsize=(5, 5)) ax = fig.add_subplot(111, aspect=1) #aspect 가로 세로 비율 값 n = 1000 x = np.sin(np.linspace(0, 2*np.pi, n)) y = np.cos(np.linspace(0, 2*np.pi, n)) ax.plot(x, y) plt.show() aspect는 가..
Bar plot(bar chart, bar graph)은 직사각형 막대로 데이터 값을 표현하는 차트 혹은 그래프이다. 범주에 따른 수치 값 비교에 적합 - 개별, 그룹 비교 모두 가능 수직 : x 축에 범주, y 축에 값 표기 (.bar()) 수평 : y 축에 범주, x 축에 값 표기 (.barh()) 범주가 너무 많아지면 한 화면 내에서 표현이 어렵기에, 세로 형 표현을 사용하기도 한다. 다만, 익숙한 vertical 수직을 기본으로 사용 import numpy as np import pandas as pd fig, axes = plt.subplots(1, 2, figsize=(12, 7)) x = list('ABCDE') y = np.array([1, 2, 3, 4, 5]) axes[0].bar(x,..
Matplotlib 은 필요할 때 그때 그때 찾아 사용하다 보니 매번 익숙해지지 못하고, 많은 시간이 소요되었다. 이 시간을 통해 Matplotlib 을 잡고가자. 본 게시글은 기본 개념, 전체적인 그림을 그리는 게시글이다. Python에서 활발하게 사용되는 시각화 라이브러리 대부분의 시각화, 데이터 분석, 머신러닝 딥러닝은 python에서 이루지기에, 습득이 필수 numpy와 scipy를 베이스로 하여 여러 라이브러리와 호환성이 높다. 여러 시각화 방법론 제공 1) 막대 그래프 2) 선 그래프 3) 산점도 4) ETC 그 외에도 Seaborn, Plotly, Bokeh, Altair 등의 라이브러리 존재 그러나 Matplotlib의 범용성이 제일 럽고, base가 된다. import numpy as n..
데이터의 시각화를 통해 전달하고자 하는 바를 시각적인 방법으로 직관적 전달 데이터 셋의 종류 1) 정형 데이터 2) 시계열 데이터 3) 지리 데이터 4) 관계형 데이터 5) 계층적 데이터 6) 다양한 비정형 데이터 데이터 종류 1) 수치형 - 연속형 - 이산형 2) 범주형 - 명목형 - 순서형 시각화 이해 점, 선, 면으로 이루어진 데이터 시각화 각 마크를 변경할 수 있는 요소들 전주의적 속성 주의를 주지 않아도 인지하게 되는 요소 (색상은 활발하게 이용되는 특성) 동시에 사용하면 인지하기 어려울 수 있음 (적절하게 사용하여 시각적 분리 )
GIL (Global Interpreter Lock) GIL 최적화를 연구하는 친구에게 관련 내용을 여러 번 들어도 기본 개념이 없다보니 듣고 흘렸다. 그렇기에 이번 기회에 한번 살펴본다. 대부분의 글은 아래의 블로그들을 참고한 것이므로, 제 글이 가독성이 떨어지면 해당 블로그에서 글을 읽으시기를 추천드립니다. 참고 글 https://ssungkang.tistory.com/entry/python-GIL-Global-interpreter-Lock%EC%9D%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C [python] GIL, Global interpreter Lock은 무엇일까? 파이썬에서 멀티스레드를 사용하려고 한다면 GIL이란 단어를 마주치게 됩니다. GIL이 무엇인지 파이썬..
파이썬은 내부적으로 malloc()과 free() 를 많이 사용하기에 메모리 누수의 위험이 있다. (malloc으로 커널에 할당한 메모리를 free 해주지 않으면 메모리 누수) 메모리 누수 컴퓨터 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상 할당 된 메모리를 사용 후 반환되지 않은 것이 누적되면 메모리 낭비 즉, 불필요한 메모리 할당을 해제하지 않으면서, 메모리 관리를 잘못할 때 발생 1) 메모리 누수는 프로그램 시스템에 치명적인 결과를 가져올 수 있다. 2) 특히 컴파일러에서 처리해주지 않기 때문에 나중에 문제점 찾기 어렵다. 3) 메모리 누수가 있는 프로그램은 몇일 잘 돌다가 죽는 프로그램이 될 수 있다. 더 궁금하면 추가적으로 아래의 글을 읽어보자. https://www.joinc.c..