Altair에서 변형 함수 사용하기

Vega-Lite는 몇 가지 간단한 데이터 변형 함수를 제공합니다. 물론 보통의 경우에 차트로 시각화하려는 원본 데이터는 DataFrame의 형태로 나와 있고, 데이터 프레임 자체를 조작하여 원하는 변형을 미리 처리하는 것이 보다 유연하고 강력합니다. (데이터 프레임은 원래 그럴려고 쓰는 것이니까요) 그렇지만 원본 데이터를 미리 조작하기 어려운 경우라면 간단한 변형은 Vega-Lite의 기능을 활용하는 방법도 고려해볼 수 있습니다. 오늘은 이 글을 통해서 Altair에서 데이터 변형을 적용하는 방법을 알아보겠습니다. 인코딩에서 집합 함수를 사용하기 가장 간단하게 쓰이는 방법으로는 차트 정보를 인코딩할 때, 필드 이름 대신에 집합 함수를… 더 보기 »Altair에서 변형 함수 사용하기

Jupyter용 시각화 라이브러리 Altair

파이썬 생태계에서 데이터 시각화 분야에서는 matplotlib이 사실상 독보적인 위치에 있음은 반론의 여지가 별로 없긴합니다. 하지만 일관성이 부족한 API나 그래프의 외관을 예쁘게 만드려면 과다한(?) 노동이 필요한 점은 단점으로 지적받기는 합니다. 이런 문제를 극복하기 위해서, 기본적으로 예쁜 그래프를 만들 수 있도록 해주는 Seaborn이나, R의 ggplot의 인터페이스를 이식해온 plotnine 같은 대안이 존재합니다.

데이터 시각화에 대한 니즈는 유독 파이썬에서만 있는 것은 아니기에, 다른 많은 언어들에서도 훌륭한 데이터 시각화 도구들이 나오고 있습니다. jupyter의 경우 웹 기반의 노트북을 지원하고 있기 때문에 자바 스크립트로 만들어진 프론트엔드 시각화 도구를 접목하여 사용하기가 용이합니다. 자바 스크립트 쪽에서 선언적인 API, 높은 자유도 등의 요구조건을 만족하는 시각화 프론트엔드로 Vega가 있습니다.

더 보기 »Jupyter용 시각화 라이브러리 Altair

예제로 알아보는 ffmpeg 필터 사용법

ffmpeg는 비디오, 오디오, 이미지등 사람이나 기계로 만든 거의 모든 포맷의 미디어 데이터를 인코딩/디코딩/필터링할 수 있는 멀티미디어 프레임워크로 미디어 관련한 소프트웨어들에 거의 기본적으로 탑재되어 있다. ffmpeg는 명령줄 도구 형식으로도 사용할 수 있어서 간단한 사용법만 익혀 두면 은근 유용하게 사용할 수 있다. ffmpeg는 실제로 엄청나게 많은 옵션들을 지원하며, 웬만한 영상 편집/변환 프로그램이 할 수 있는 일을 거의 다 할 수 있다고 보면 된다. 전체 옵션들은 문서화가 잘되어 있으며, 공식 위키에서도 굉장히 유용한 팁들을 찾을 수 있다. (영문임) ffmpeg tool 공식 문서 공식… 더 보기 »예제로 알아보는 ffmpeg 필터 사용법

Julia 정규식 다루기

Julia에서 정규식은 별도의 모듈을 반입하지 않고 사용할 수 있으며, 패턴 자체는 Base.RegExp 타입으로 표현된다. 정규식 패턴을 만들 때에는 r"..." 형태의 리터럴로 바로 정의할 수 있다. (대신, raw string문자열은 raw"..."이다.) 한번 생성한 Regexp 값은 .pattern 필드로 그 패턴을 다시 확인할 수 있다. 참고로 r" .... " 내의 표현에서 이스케이프 문자는 두 번이 아니라 한 번만 쓰면 된다. (r"\d+")

더 보기 »Julia 정규식 다루기

선형대수를 사용해서 연립방정식 풀기

연립방정식을 손으로 푸는 방법으로는 학교에서 소거법이나 대입법 같은 테크닉을 배운다. 하지만 간단한 1차 연립 방정식을 다른 방법을 사용해서도 풀 수 있는데, 이 다른 방법이라는 것이 손으로 풀기에는 더욱 귀찮지만 컴퓨터에 적용할 수 있다는 장점이 있어서 소개한다. 한개에 600원하는 귤과 한 개에 1000원하는 사과를 모두 12개를 사고, 8800원을 지불하였다. 귤과 사과는 몇 개씩 샀는지 구하라. 이 문제에는 귤과 사과의 개수를 더해서 12, 구매 금액을 모두 더해서 8800원이라는 두 개의 조건이 등장한다. 이 두 조건을 식으로 쓰면 다음과 같을 것이다. 600 *… 더 보기 »선형대수를 사용해서 연립방정식 풀기

점자 텍스트로 이미지 표현하기

지난 글에서 이미지를 아스키문자로 렌더링하는 방법에 대해서 알아보았는데, 이번에는 조금 다른 이미지 렌더링 방식에 대해서 알아보자. 인터넷에서 돌아다니는 다음과 같은 아스키아트를 본 적이 있을지 모르겠다. 기존의 아스키아트는 글자 1개가 픽셀 1개를 표현하는데, 이런 종류의 아스키 아트는 1글자가 픽셀 8개를 표현한다. 2×4의 점으로 한 글자가 이루어지는 이 문자들은 유니코드 점자 문자 세트의 글자들이다. 각각의 점이 on/off 상태로 총 128개의 문자를 표현할 수 있기 때문에 실질적으로 모든 픽셀을 표현하는 것이 가능하다. 점자 코드의 첫글자는 0x2800로 빈 칸을 표현하며, 이후 아래방향으로 그리고 다시… 더 보기 »점자 텍스트로 이미지 표현하기

예금과 적금의 차이

예금 예금은 일정기간을 정해놓고 자신의 돈을 은행에 맡기는 것을 말한다. 예금의 종류에는 보통예금, 정기예금, 당좌예금이 있다. 보통 예금 : 입출금이 자유롭고 금액이나 기간에 제약이 없음 당좌 예금 : 돈을 은행에 두고 예금자의 요구에 따라 일부 혹은 전부를 언제든 지급받는 예금 정기 예금 : 일정한 기간을 정해여 금액을 맡기고 기간 만료일까지 환급을 받지 않는 기한부 예금. 적금 적금은 은행에 일정 금액을 일정 기간 동안 낸 다음 찾는 것으로 다시 정기 적금과 부금으로 나뉜다. 정기적금 : 일정한 기간 동안 일정액을 매월 적립하고… 더 보기 »예금과 적금의 차이

Julia – 파일 다루기

Julia에서 파일을 여는 법

줄리아에서 파일을 읽고 쓰기 위해서는 IOStream 객체이를 이용한다. 스트림 객체를 만들기 위해서는 open() 함수를 사용한다. 이렇게 얻은 스트림객체는 read(), write(), seek()등 파일 입출력 관련 함수에서 사용된다. 가장 기본적인 문법으로 파일을 열어서 내용을 읽고 출력하는 코드를 작성해보면 다음과 같은데, 다른 많은 언어들과 큰 차이를 보이지 않는 것 같다.

fd = open("myfile.txt")
body = read(fd, String)
println(body)
close(fd)
더 보기 »Julia – 파일 다루기

파일 탐색 유틸리티 fd 사용법

이 블로그에서 GNU find의 사용법에 대한 글을 올린 적이 있는데, 오늘은 이 GNU find를 대체할 수 있는 fd 라는 툴의 사용법에 대해서 간단히 정리해보고자 한다. fd는 이름부터 ‘find’를 50%줄여서 더 빠르게 쓴다는 취지로 개발되었으나, GNU find를 ‘완전히’ 대체하는 것을 목표로 하지는 않는다. 대신에 옵션명을 보다 직관적으로 현대화(?)하고 더 빠르게 동작할 수 있는데 중점을 두고 개발되었다. 개발자에 따르면 find 유틸이 제공하는 전체 기능의 80% 정도를 커버할 수 있으며, 성능은 대략 9배이상 빠른 것으로 본다고 한다. 무엇보다 윈도환경에서 사용이 가능하다. (msys 같은… 더 보기 »파일 탐색 유틸리티 fd 사용법

이미지를 아스키코드로 렌더링하기

인터넷에 보면 꽤나 유명한 사진 이미지를 아스키문자로 표현해놓은 것들을 종종 볼 수 있다. 선이나 슬래시 문자를 사용해서 그림처럼 그리는 것들은 아마도 장인정신을 발휘하여 한 땀 한 땀 수놓은 것들이겠지만, 그렇지 않고 문자와 문장 부호들만으로 멀리서 보면 그림처럼 보이게 표현해놓은 예들이 무척 많다. 이런 아스키 아트들은 사실 약간의 아이디어만 있으면 간단히 만들 수 있는데, 오늘은 아스키 코드로 이미지를 렌더링하는 방법에 대해서 알아보자. 이미지 처리를 위해서는 간단히 PIL 정도의 라이브러리만 있으면 된다.

더 보기 »이미지를 아스키코드로 렌더링하기