zenn.skin 무료버전 배포중!
자세히보기

전체 글 182

Python/Syntax
[Pandas] 빈도표 구하기, 카이제곱검정(crosstab, chi2_contingency)

1. pandas.crosstab crosstab은 범주형 변수를 기준으로 데이터의 개수를 파악할 때 사용합니다. crosstab을 사용해 빈도표를 만들어 카이제곱검정을 할 때도 유용합니다. 파라미터 설명 index: array-like, Series,list, arrays 행으로 지정할 데이터 columns: array-like, Series, list, arrays 열로 지정할 데이터 values: array-like, optional 집계할 데이터 (aggfunc을 같이 사용해야 합니다) aggfunc: function, optional 집계할 방법을 선택(count, mean, median ...) margins: bool, default=False 총계를 보고 싶은 경우 사용 dropna: bo..

Python/Syntax
[Python] Dictionary 대신 사용할 수 있는 dataclass

앞서 설명한 NamedTuple은 값을 수정하려 하면 AttributeError가 발생하기 때문에 딕셔너리 자료형과 마찬가지로 값을 수정할 때 발생하는 오류에 취약할 수 있습니다. dataclass는 NamedTuple처럼 클래스로 사용하는 방식이 아닌 데코레이터를 사용하는 방법입니다. from dataclasses import dataclass @dataclass class PersonInfo: height: float weight: float name: str person = PersonInfo(180, 75, 'koo') NamedTuple과 동일한 방식으로 값에 접근할 수 있고, 값에 수정도 가능합니다. print(person.height) # 180 person.height = 181 print..

Python/Syntax
[Python] Dictionary 대신 사용할 수 있는 NamedTuple (NamedTuple Type Annotation)

C나 C++, Java는 함수나 클래스를 이용할 때, 파라미터의 타입이나 출력값의 타입 등을 지정해줄 수 있습니다. 타입을 미리 지정하면 오류를 줄이거나 발견하기 쉽고, 코드의 가독성을 좀 더 올릴 수 있는 장점이 있습니다. python에서도 typing 모듈을 이용한 type annotation을 지원해줍니다. 오늘은 그 중에서도 Named Tuple에 대해 알아보려 합니다. 1. 딕셔너리(Dict) person = {'height': 180, 'weight': 75, 'name': 'koo'} 데이터를 표현할 때 딕셔너리 자료형을 사용하면, 데이터의 속성을 나타낼 수 있습니다. 딕셔너리 자료형에는 몇가지 문제가 있습니다. 약간의 오버헤드가 있는 비효율적인 표현 방식이기 때문에 필요 이상의 메모리를 차..

CS/Network
[Network] TCP/IP Model

1. TCP/IP Model OSI 7 Layer 모델처럼 전체 네트워크의 통신 과정을 개념적으로 모델링한 네트워크 모델입니다. OSI 7 Layer 모델과 비교해 많이 설명되는데, TCP/IP 모델은 1970년대에 개발되었고, OSI 7 Layer는 1984년에 개발되었기 때문에 두 모델이 정확히 일치하지 않습니다. 응용계층, 표현계층, 전송계층의 역할을 Application Layer(응용계층)이 수행하고 데이터링크계층, 물리계층의 역할을 Network Interface Layer(네트워크 인터페이스 계층)이 수행합니다. 2. 각 계층별 설명 ① Network Interface Layer(네트워크 인터페이스 계층) OSI 7 Layer의 데이터링크층과 물리계층이 해당합니다. 전기적 신호를 전달하는 랜..

CS/Network
[Network] OSI 7 layer Model

1. OSI 7 layer OSI 7 layer는 네트워크 시스템을 7개의 층으로 나누어 설명하는 개념적인 모델입니다. 과거에는 업체에 따라 서로 다른 프로토콜(통신 규약)과 기기를 사용했기 때문에 서로 다른 소프트웨어나 기기 간에는 통신이 안되는 문제가 있었습니다. 이러한 통신 문제를 해결하기 위해서는 규격의 통일이 필요했는데, 이것이 OSI 7 Layer 모델입니다. 전체 네트워크 시스템을 기능에 따라 여러 개의 층으로 나누고 해당하는 층의 통신규격을 맞추면 서로 다른 기기간에도 통신을 할 수 있게 됩니다. 각 층들은 서로 독립적으로 역할을 수행하기 때문에 다른 층에 영향을 받지 않습니다. 프로토콜을 개발할 때도 해당하는 layer외에 다른 layer와 독립적이기 때문에 개발에 용이하고 유지보수면에서..

Python/Syntax
[colab] colab에서 ipynb파일 import하기

지난번에 ipynb에서 다른 ipynb 파일을 import하는 방법에 대해 알아봤습니다. [JupyterNoteBook] 사용자 정의 ipynb 파일 임포트 (다른 ipynb 파일 임포트) JupyterNotebook에서는 py 파일이 아닌 ipynb 파일을 사용해 코드를 작성합니다. 일반적인 py 파일의 경우 import를 하면 바로 사용할 수 있지만 JupyterNotebook에서는 별도의 라이브러리를 임포트 한 이후에 koosco.tistory.com 오늘은 colab에서 동일하게 ipynb 파일을 import하는 방법에 대해 알아보겠습니다. 1. import_ipynb 설치 !pip install import_ipynb 먼저 ipynb파일을 import하기 위해 import_ipynb를 pip를 ..

Python/Syntax
[matplotlib] 텍스트 추가하기, annotate

matplotlib의 annotate는 지정된 xy위치에 text를 삽입해주는 함수입니다. 파라미터 설명 text : str 추가할 문자열 xy : (float, float) 추가할 (x, y) 위치 xytext : (float, float) xy위치에서 조정할 텍스트 위치 textcoords : str or Artist or Transform or (float, float) - default: value of xycoords xytext가 제공되는 좌표계 'offset points': xy값으로부터의 offset(point) 'offset pixels': xy값으로부터의 offset(pixel) annotate와 산점도를 사용하면 다음과 같이 정보를 표현할 수 있습니다. import matplotlib..