본문 바로가기

분류 전체보기

View를 리턴하는 것과 Copy를 리턴하는 것 값을 판다스 객체에 넣을 때, chainedindexing이라는 것을 피하기 위해 주의를 기울여야 한다. 다음과 같은 예제를 생각해보자.In [382]: dfmi = pd.DataFrame([list('abcd'), .....: list('efgh'), .....: list('ijkl'), .....: list('mnop')], .....: columns=pd.MultiIndex.from_product([['one', 'two'], .....: .. 더보기
광명역에서 인천공항행 리무진 버스 이용하기 대구에 살고있는 나에게 해외출장 갈 일이 생겼다. 대구공항에서는 갈 수 없는 국가로의 출장이라 인천공항으로 가야했는데 광명역에서 공항버스로 인천공항으로 가는게 빠르다 그래서 처음 이용해보았다. 예매는 코레일톡 어플을 통해서 할 수 있었다.공항버스 예매는 기차 예매하듯이 할 수 있었으며 인천공항까지 가는 요금은 16000원이다. T1과 T2 둘다 요금은 같아서 둘중에 아무거나 사도 상관없는 거 같다.광명역에서 공항버스를 타기 위해서는 4번출구로 가야한다. 광명역이 꽤 커서 잘 찾아가야 한다. 나는 멍청하게 1번출구쪽으로 갔다가 광명역을 다 둘러보고 갔다;;4번출구 공항버스가 오는 시간을 확인할 수 있다.공항버스 시간대랑 요금이 나와있다. 내가 탄 11월 초부터 지정좌석제로 변경되었다고 한다.광명역을 나오면.. 더보기
BrokenPipeError 분석 Python으로 멀티프로세스 코드를 작성하다보면 한번씩 BrokenPipeError를 만나게 된다. 이게 무슨 의미인지 이해하는 과정에서 찾아본 자료들을 정리하고자 한다.BrokenPipeError의 정의BrokenPipeError는 Pipe가 부러져서 생긴 오류라는 의미다. 그럼 Pipe가 무엇인지에 대해서 먼저 이해해야한다.파이프 (Pipe)Pipe는 운영체제에서 서로다른 프로세스의 입출력을 연결하는 방법을 의미한다. 예컨데, A 프로세스에서 생긴 출력을 B 프로세스의 입력으로 연결하는 수단을 Pipe라고 생각하면 이해하기 쉽다.파이프 연결 예시예를 들어, 아래와 같은 두 프로세스가 있다고 생각해보자.echo "hello"이 프로세스는 표준출력(stdout)에 "hello"라는 문자열을 쓴다(writ.. 더보기
json과 ujson의 차이점 JSONJSON은 파이썬의 다양한 객체를 직렬화(serialize)하는데 유용한 문법 중 하나이다. 객체가 복잡하게 구성되어 있더라도 강건하게 직렬화할 수 있고 직렬화된 결과물을 사람이 이해하기 쉽다는 점에서 강력한 장점을 보인다. JSON 인코더-디코더 라이브러리파이썬 객체를 JSON 형태의 문자열로 인코딩, JSON 형태의 문자열을 파이썬 객체로 디코딩해주는 여러 종류의 라이브러리 존재한다. 그 중, 파이썬 내장 라이브러리인 `json`과 패키지를 통해 설치가능한 `ujson`가 자주 사용된다.JSON과 UJSON의 미세한 구현 차이이 두 라이브러리는 문자열 객체를 인코딩하는 과정에서 미세한 차이점을 보인다. 예컨데, 문자열 객체 "http://www.naver.com"을 JSON으로 인코딩하면 다음.. 더보기
김밥집 108 오늘은 분식집. 참치김밥 하나랑 비빔라면 하나.사진찍는거 까먹어서 비빔라면은 이미 비벼서 참치김밥만 찍었다.참치김밥 4500원 + 비빔라면 5000원맛있는데 아는 사람들이 많아진 느낌이다. 더보기
진참치 시지점 실속초밥 가격 11000원초밥이 그렇지만 맛있었음. 참치전문점이라 그런가 윗줄 5개가 다 맛있었음. 간장을 어디다 뿌리고 먹어야할지 모르겠음. 젓가락만 주셨는데 죽 먹기가 불편함. 일반적인 양인거 같은데 나한텐 좀 부족했음. 더보기
Visual Studio Code 주피터 노트북 환경변수 수정안될 때 해결법 대부분의 경우, 환경변수는 .bashrc 파일과 같은 쉘 환경을 통합 관리하는 파일에서 관리한다.하지만 Visual Studio Code(VSCode) 편집기에서 주피터 노트북을 사용할 때, .bashrc에서 수정한 환경변수값이 실행중인 커널에서 반영이 안되는 경우가 있다.이럴 때 빠르게 해결하는 방법은 프로젝트 내에 .env 파일에 환경변수를 설정해주는 것이다.예를 들어, .bashrc에서 CUDA_VISIBLE_DEVICES라는 환경변수를 1로 설정하고 싶어서 변경했는데 해당 변경사항이 반영이 되지 않았다면, 프로젝트 폴더 내에 .env 파일을 만들고 CUDA_VISIBLE_DEVICES=1을 적어주면 바로 반영이 된다. 더보기
배열 내에 k번째로 작은 수 구하기 어떤 배열이 주어졌을 때, 그 배열 속에서 k번째로 작은 수를 구하는 일은 심심치 않게 발생한다. 나 같은 경우에는, 어떤 확률을 나타내고 있는 n차원 백터내에서 k번째로 큰 확률을 가진 클래스를 찾고 싶었다. 그럼 이를 어떻게 구현할 수 있을까? 가장 간단하게 떠오르는 방법은 (1) 주어진 벡터를 오름차순으로 정렬한 뒤 (인덱스를 알고싶다면 인덱스도 함께 저장), (2) k번째 값을 찾는 것이다. 해당 방법은 O(nlogn)의 시간복잡도를 가지며 적당한 시간 내에 끝나기 때문에 실용적이다. 하지만, 이것보다 더 빠르게 구현할 수 있는 방법이 있을까?검색 알고리즘 (selection algorithm)이번에 찾아보면서 알게 되었는데 배열 속에서 k번째로 작은 수를 구하는 문제는 알고리즘 분야에서는 꽤나 .. 더보기