전체 글 41

세상에서 가장 쉬운 통계학 입문

정말 쉽게 통계학에 기본 용어들을 알려주고 헷갈릴 만한 부분은 예시 설명을 통해 잘 설명해준다. 수식에 대해 설명하지 않아 쉽게 술술 읽히는 책이였다. 개념만 알고 있고 있던 부분들과, 카이 제곱 분포, t 분포 들어는 봤지만 왜 사용해야 하는지 몰랐던 부분을 설명해준다. 사실 이 책 이전에 세상에서 가장 쉬운 베이즈 통계학 입문의 책을 먼저 봤었는데 너무 쉽게 쓰여있어서 좋았어서 저자인 코지마 히로유키의 책을 검색해서 구매했다. 또 다른 책을 내주면 바로 사서 볼 정도로 책을 쉽고 기본적인 알찬 내용을 담아 잘 쓰시는 것 같다. 입문자를 위해 꼭 추천하고 싶은 책이다.

Book Review 2023.02.11

PyPi Python package version 관리 방법

회사의 Package를 업로드한 후 Pypi.org 사이트에서 numpy pacakge history를 보다 PRE-RELEASE 란 것이 있어 어떻게 적용하는지, 별도의 방법이 있는 듯 하여 검색하여 알게 된 내용을 정리하겠습니다. numpy Fundamental package for array computing in Python pypi.org PiPy.org를 통해 python package를 업로드 할 때 버전을 지정하는 규칙이 존재합니다. 해당 규칙은 PEP 440에 설명되어 있습니다 PEP 440 – Version Identification and Dependency Specification | peps.python.org In order to maintain better compatibili..

Python 2023.02.08

OpenAI Whisper를 활용한 영상 음성 정보 수집 방법

영상 데이터의 정보를 어떻게 하면 가져와 정보를 수집할 수 있을까 하는 생각이 있었습니다. 그러다 OpenAI의 Whisper를 접했고 쉽게 사용할 수 있는 방법이 있어 이를 기술하고자 합니다. Whisper는 ChatGPT로 유명한 OpenAI의 자동 음성 인식(ASR) 시스템입니다. 음성 정보를 넣으면 언어를 인식하고, 다른 언어를 자동으로 영문으로 번역까지 해 올 수 있습니다. YouTube 영상의 url을 넣었을 때 해당 영상을 다운 받고, Whisper를 통해 인식하여 텍스트로 가져오고, 한글로 번역하는 과정까지 작성해 보도록 하겠습니다. 먼저 사용할 python Package들을 다운받아 줍니다. YouTube Download를 위해 pytube, ASR을 위해 whisper를 다운받아 줍니다..

Data Analysis 2023.02.07

할리 그라임스 부츠 구매

오토바이가 사고 싶어졌던 시절이 있었다. 없었던 면허를 부랴부랴 따면서 오토바이를 사면 이런 옷 차림세를 해야지 하면서 골랐던 물건이 있다. 그 시절 안전 장비들과 함께 예쁜 물건을 찾다가 안전화 대용으로 부츠를 하나 장만했다. 반값 할인한다는 말에 홀라당 구매를 했지만 아직까지 반값 할인을 하는 것을 보니 그게 정가이지 않을까. 부츠를 구매했지만 결국 오토바이는 안 산것도 함정이다... 산지 세달도 넘었지만 아직 택도 뜯지 않아서 브롬톤X바버 시티백을 올린 김에 이것도 같이 구매를 지금한 척 올린다. 오토바이의 로망 할리 데이비슨의 박스 열면 신발끼리 상하지 않도록 고급스럽게 포장되어 있다. 가죽도 부들부들하니 고급스럽다. 긁히면 손상이 잘 갈것 같지만 그것마저 신을수록 멋이지 않을까 한다. 앞부분이 ..

일상 2022.12.21

MFC Bitmap Clipboard Copy

Clipboard에 데이터를 복사하려하는데 비트맵의 모든 데이터를 넣으면 에러가 발생합니다. 어떤 데이터를 복사해 주어야하는지 알아보겠습니다. 비트맵 파일의 구조를 먼저 알아보겠습니다. 비트맵은 File Header, Info Header, Pixel Data 로 이루어져있습니다. 각 14 Byte, 40 Byte, 3*Data Byte가 할당됩니다 여기서 Data는 BGR데이터로 상하반전되어 들어가기 떄문에 주의가 필요합니다. 이는 Intel CPU에서 Reverse Word 방식을 사용하기 떄문에 Byte단위로 역순으로 저장하면 word나 dword단위로 읽으면 정방향으로 입력되기 떄문입니다. // ARGB byte a = read(1); byte r = read(1); byte g = read(1)..

Program Analysis 2022.08.30

백준. 최소비용 구하기(Dijkstra)

문제 N개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 M개의 버스가 있다. 우리는 A번째 도시에서 B번째 도시까지 가는데 드는 버스 비용을 최소화 시키려고 한다. A번째 도시에서 B번째 도시까지 가는데 드는 최소비용을 출력하여라. 도시의 번호는 1부터 N까지이다. 입력 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 주어진다. 그리고 그 다음에는 도착지의 도시 번호가 주어지고 또 그 버스 비용이 주어진다. 버스 비용은 0보다 크거나 같고, 100,000보다 작은 정수이다. 그리고 M..

Python 2022.08.24

백준. DFS와 BFS

문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수행한 결과를 출력한다. V부터 방문된 점을 순서대로 출력하면 된다. ..

Python 2022.08.22

백준. 동전1 (Dynamic Programming)

문제 n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수를 구하시오. 각각의 동전은 몇 개라도 사용할 수 있다. 사용한 동전의 구성이 같은데, 순서만 다른 것은 같은 경우이다. 입력 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 경우의 수를 출력한다. 경우의 수는 2^31보다 작다. 제출한 정답 n, k = map(int, input().split()) lst_coin_val = [] for i in range(n): coin_val = in..

Python 2022.08.18

백준. 설탕배달 (Dynamic Programming)

문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) 출력 상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정..

Python 2022.08.18

Apache Flink DataStream API Tutorial 진행 및 분석

DataStream API Tutorial을 진행해 보겠습니다. DataStream API Tutorial DataStream API Tutorial # Apache Flink offers a DataStream API for building robust, stateful streaming applications. It provides fine-grained control over state and time, which allows for the implementation of advanced event-driven systems. In this step-by nightlies.apache.org 먼저 환경 변수를 설정해 줍니다. env = StreamExecutionEnvironment.get_exec..

Docker 2022.08.02