Language
[Python] Sliding Window
def sliding_window(series, window_size, step = 1): """series is a column of a dataframe""" for start_row in range(0, len(series) - window_size + 1, step): yield series[start_row:start_row + window_size] tmp = np.arange(100) list(sliding_window(tmp, 10, 5)) 위의 코드를 실행하면 0부터 99까지의 데이터를 10개씩 5개씩 이동하면서 데이터를 만들어낸다. 결과는 아래와 같다. [array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), array([ 5, 6, 7, 8, 9, 10, 11, 12, ..
[Python] Poetry - Jupyter
Poetry는 파이썬 개발 시 의존성 관리와 패키징을 위한 툴이다. pip와 venv를 통해 프로젝트의 가상환경을 자동으로 생성하고 의존성을 관리해줌으로써 개발용이성을 향상시켜준다. 여러 개발자가 동일한 환경에서 개발할 수 있도록 지원을 한다. 따라서 개발자의 머신에서 Global로 설치된 의존성이 아닌 프로젝트에 필요한 버전의 의존성을 동일하게 유지해 준다. 아래 전체적인 흐름을 정리한 그림이다. 위의 흐름에 맞춰서 하나씩 정리해본다. 1. Poetry 설치 poetry를 사용하기 위해 설치가 필요하다. 나는 1.4.2 버전이 설치된 상태이다. $ pip install poetry $ poetry -V Poetry (version 1.4.2) 2. 프로젝트에 poetry 초기화 하기 $poetry in..
[TroubleShooting] pyenv 문제 해결
_bz2, _ctypes, readline, _ssl 등 ModuleNotFoundError pyenv 설치 이후 아래와 같은 문제가 발생하는 경우가 있다. 필요한 라이브러리들이 설치가 안된 경우다. 문제 Downloading Python-3.8.16.tar.xz... -> https://www.python.org/ftp/python/3.8.16/Python-3.8.16.tar.xz Installing Python-3.8.16... Traceback (most recent call last): File "", line 1, in File "/home/linuxias/.pyenv/versions/3.8.16/lib/python3.8/bz2.py", line 19, in from _bz2 import BZ2..
[Carbon] Value categories and value phases
모든 값에는 값 범주가 있다. 이 범주는 C++과 유사하며 흔히 알고 있듯 l-value(좌측값) 또는 r-value(우측값) 라고 부른다. (여기서 l-value, r-value가 무엇인지는 자세히 설명하지 않는다.) Carbon은 자동으로 l-value을 r-value으로 변환하지만 다른 방향으로는 변환하지 않습니다. 즉 r-value를 l-value로는 변환하지 않는다는 의미이다. l-value에는 메모리 저장을 위한 공간과 해당 공간의 주소가 존재하며 유형이 const(상수형)이 아니라면 l-value의 값은 수정될 수 있다. r-value는 r-value만을 위한 전용 저장 공간이 없을 수 있다. 즉, 수정이 불가능하며 일반적으로 해당 데이터의 주소를 가져올 수 없다. r-value는 value..
[Carbon] #1. Carbon의 자료형, 원시 타입 알아보기
Carbon Language는 지금도 지속적으로 발전 중이며 현재 기준(trunk)으로 정리된 내용을 전달한다. 많은 부분이 아직 컨셉이며 구현이 되어있지 않은 점(컨셉만 정리된 문법이 많음)을 이해하고, 내용은 지속적으로 변경될 수 있으며, 최대한 반영하려 노력하려 한다. Carbon의 자료형, 원시타입! Carbon은 C++언어와 매우 유사한 형태를 띄고 있으며, 자료형도 유사하다. Bool True 및 False 의 두 가지 가능한 값이 있는 타입이다. Int 및 UInt 부호 있는 및 부호 없는 64비트 정수 유형. 표준 크기는 i8, i16, i32, i64, i128 및 i256을 포함하여 부호 있는 및 부호 없는 모두 사용할 수 있고 오버플로우는 오류로 처리된다. Float64 IEEE-75..
[Carbon] #0. C++의 후계자 - Carbon
C++, 오래된 친구이자 적 C++은 1985년 처음 발표된 이후 최근에 C++20 버전까지 매우 오랫동안 전세계적으로 많이 사용되고 있는 언어이다. 지금은 아니지만 10여년 전까지만 해도 프로그래밍의 시작은 C/C++ 언어를 사용하여 시작하는 개발자들이 많았다.(지금은 Python이나 Web 관련 언어들이 더 많은 것 같다.) 오랜시간동안 무수히 많은 시스템 개발에 사용되었고, 지금도 널리 사용되고 있다. 특히 C++는 대규모의 코드베이스와 투자가 증가하면서 성능이 중요한 소프트웨어를 위한 지배적인 프로그래밍 언어로 군림해왔다. 하지만 너무 오랫동안 사용되고 다양한 요구사항을 받아들이다 보니 단점이 점점 커져가고 있다고 생각한다. 특히 기존에 구조에 새로운 기능 추가하기 위해서 매우 오랜시간이 소요된다..