Python ctypes로 C 라이브러리 호출하기
파이썬으로 시스템 프로그래밍을 하다 보면 표준 라이브러리에 없는 저수준 기능이 필요한 순간이 온다. 특정 syscall을 직접 호출해야 하거나, 이미 검증된 C 라이브러리(.so)를 재사용하고 싶거나, 순수 파이썬으로는 느린 연산을 C로 짜둔…
파이썬 사용법, Python programming
파이썬으로 시스템 프로그래밍을 하다 보면 표준 라이브러리에 없는 저수준 기능이 필요한 순간이 온다. 특정 syscall을 직접 호출해야 하거나, 이미 검증된 C 라이브러리(.so)를 재사용하고 싶거나, 순수 파이썬으로는 느린 연산을 C로 짜둔…
Python 스크립트에서 셸 명령어나 외부 프로그램을 호출해야 하는 상황은 흔하다. os.system()은 출력을 캡처할 수 없고, os.popen()은 에러 처리와 스트림 제어가 번거롭다. 특히 자동화 스크립트에서 외부 명령의 표준출력/표준에러를 각각 받아 로그로…
수백만 행짜리 데이터프레임을 통째로 훑어보거나 모델에 넣기 전에, 일부만 빠르게 뽑아 분포를 확인하고 싶을 때가 있다. df.head()는 앞부분만 보여주기 때문에 데이터가 정렬돼 있으면 편향된 인상을 준다. 반대로 그룹별 비율은 유지한…
데이터를 받으면 가장 먼저 하게 되는 작업이 값의 분포를 파악하는 것이다. Pandas는 평균을 구하는 mean(), 고유값을 뽑는 unique(), 값별 개수를 세는 value_counts() 같은 통계 함수를 기본으로 제공한다. 이 글에서는 예제…
표 형태의 데이터를 다룰 때 파이썬에서 가장 많이 쓰는 게 Pandas DataFrame이다. DataFrame은 크게 세 요소로 이뤄진다 — 행을 식별하는 index, 열을 식별하는 columns, 그리고 실제 값들인 data. 이 글에서는…
다른 언어를 다뤄본 사람이라도 Python(파이썬) 연산자에서 몇 군데는 헷갈릴 수 있다. 대표적으로 /와 //의 차이, ==와 is의 차이가 그렇다. 이 글에서는 파이썬의 연산자 종류를 실제 코드 실행 결과와 함께 정리한다.…
자료구조는 데이터를 저장하고 조직화하는 방식을 정의한다. Python(파이썬)은 리스트, 튜플, 집합, 사전 같은 내장 자료구조와, 이를 확장한 collections 모듈을 함께 제공해 대부분의 작업을 표준 라이브러리만으로 처리할 수 있다. 이 글에서는 각…
임베디드 리눅스 디바이스를 개발할 때, 시리얼 콘솔을 통해 커널 디버깅 또는 긴급 명령을 보내는 경우가 있다. 그중 하나가 Magic SysRq 키 조합을 시리얼 포트를 통해 보내는 기능이다. Magic SysRq는 리눅스…
Python에서 range() 함수는 일정 범위의 연속된 숫자(정수)를 생성하는 데 사용된다. 이 함수는 주로 for 반복문에서 특정 횟수만큼 반복할 때 유용하게 활용된다. 이번 글에서는 range() 함수의 사용법에 대해 알아본다. range() 함수…
튜플은 Python에서 사용되는 중요한 데이터 구조 중 하나입니다. 튜플은 변경 불가능한 (immutable) 시퀀스 자료형으로, 여러 항목을 저장할 수 있으며 리스트와 유사하지만 한 번 생성하면 내용을 변경할 수 없습니다. 이 글에서는…