표준화 전후로 이상치(Outlier)를 제거하는 Python 예제 코드입니다. 2022. 4. 5 최초작성 이상치는 대부분의 값과 다르게 아주 작거나 아주 큰 값을 의미합니다. 평균 ± 표준편차 × 3 을 벗어나는 것을 이상치로 취급하여 제거해본 예제 코드입니다. 표준화를 적용 전후에 각각 이상치를 제거해봤습니다. 전체 코드입니다. import pandas as pd import numpy as np import matplotlib.pyplot as plt from collections import Counter # 5개의 특징으로 구성된 샘플 40개 생성 a = np.random.randint(1, 13, size=200).reshape(40, 5) df_raw = pd.DataFrame(a) # 0번..
윈도우에서 파일 읽는 코드를 사용시 다음과 같은 에러가 발생할 때가 있습니다. UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 5302: illegal multibyte sequence with open('test.py', 'r') as f: text = f.read() print(text) 2023. 3. 28. 최초작성 이 문제를 해결하려면 encoding='utf-8'를 추가해줘야 합니다. with open('test.py', 'r', encoding='utf-8') as f: text = f.read() print(text)
리스트의 값 범위를 변환하는 파이썬 예제입니다. 2023. 5. 27 최초작성 실행 결과입니다. 값의 범위 0 ~ 80내 에 있는 값으로 구성된 리스트를 값의 범위 0 ~10, 0 ~ 1000, -50 ~ 50이 되도록 리스트로 변환한 결과를 보여줍니다. list_old [0, 20, 40, 60, 80] list_new_1 [0.0, 2.5, 5.0, 7.5, 10.0] list_new_2 [0.0, 250.0, 500.0, 750.0, 1000.0] list_new_3 [-50.0, -25.0, 0.0, 25.0, 50.0] 전체 코드입니다. list_old = list(range(0, 100, 20)) print('list_old', list_old) print() old_max = max(list..
지정한 디렉토리에 있는 파일 목록록을 가져오는 Python 예제 코드입니다. 재귀적으로 하위 디렉토리에 있는 파일 목록까지 가져옵니다. 2023. 1. 21 최초작성 2023. 6. 2 최종수정 다음과 같은 디렉토리 구조에서 test를 경로로 입력하여 테스트했습니다. 실행 결과입니다. test 디렉토리 아래에 있는 A,B 디렉토리와 B 디렉토리 아래에 있는 33 디렉토리에 있는 파일 목록까지 보여줍니다. 윈도우에서 실행해서 출력 결과에 \와 /가 뒤섞여 있습니다. ./test/1 ./test/2 ./test/3 ./test\A/11-1 ./test\A/11-2 ./test\B/22-1 ./test\B/22-2 ./test\B\33/33-1 ./test\B\33/33-2 사용한 전체 코드입니다. impor..
진행상태를 프로그레스바로 보여주는 Python tqdm 예제입니다. 2023. 6. 19 최초작성 우선 tqdm 패키지를 설치해야 합니다. pip install tqdm 코드를 실행하면 프로그레스바로 진행상태를 보여줍니다. 아래 로그는 진행 완료후의 상태입니다. (newenv) D:\code\Python>C:/Users/webnautes/miniconda3/envs/newenv/python.exe d:/code/Python/test_tqdm.py 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████..
두개의 리스트를 같은 순서로 정렬시키는 파이썬 예제입니다. 2023. 6. 26 최초작성 zip를 사용하여 두개의 리스트를 하나로 묶은 다음, 첫 번째 리스트를 기준으로 정렬하고, 다시 두 개의 리스트로 분리합니다. 결과는 튜플이기 때문에 다시 다시 리스트로 변환해야 합니다. list1 = [2, 3, 1, 4] list2 = ['b', 'c', 'a', 'd'] zipped_lists = zip(list1, list2) sorted_zipped_lists = sorted(zipped_lists) list1, list2 = zip(*sorted_zipped_lists) list1 = list(list1) list2 = list(list2) print(list1) print(list2) 실행 결과입니다. ..
넘파이의 argsort 함수를 사용하여 첫 번째 배열을 오름순으로 정렬하는 인덱스를 얻은 다음, 두 번째 배열에 이 인덱스를 적용하여 첫 번째 배열과 동일한 순서로 정렬합니다. 2023. 6. 27 최초작성 import numpy as np array1 = np.array([2, 1, 4, 3, 5]) array2 = np.array(['b', 'a', 'd', 'c', 'e']) # 첫번째 배열을 정렬하는 인덱스를 얻습니다. sort_indices = np.argsort(array1) # 인덱스를 사용하여 두 배열을 같은 순서로 정렬합니다. array1_sorted = array1[sort_indices] array2_sorted = array2[sort_indices] print(array1) pri..
파이썬에서 스레드를 사용하는 방법을 다루고 있습니다. 1. 쓰레드 (Thread) 2. 스레드 생성 및 실행 3. join 함수 4. 데몬 쓰레드 5. Concurrent.futures 모듈 6. 전역 변수 공유 7. GIL(Global Interpreter Lock) 8. 프로세스 생성하여 실행하기 9. Thread vs Process 2022. 8. 6 최초작성 1. 쓰레드 (Thread) 파이썬 코드를 실행하면 보통 위에서 아래로 순차적으로 실행됩니다. 때로는 함수나 조건문, 반복문등에 의해서 실행 순서가 바뀔 수도 있습니다. 하나의 작업이 오래 걸리는 작업이라면 이 작업을 백그라운드로 실행해두고 결과가 리턴되기 전까지 다른 작업을 하고 싶을 수 있습니다. 이렇게 하려면 코드를 병렬로 실행해야 하며..
MQTT 개념과 예제를 다룹니다.@ 다음 링크의 문서를 번역한 내용을 바탕으로 이해한 것을 보충했습니다. https://learn.sparkfun.com/tutorials/introduction-to-mqtt/all 추가적으로 아래 링크를 참고했습니다. https://khj93.tistory.com/entry/MQTT-MQTT의-개념 2022. 2. 23 최초작성 2023. 5. 11 추가로 다음 링크를 참고했습니다. https://1000sj.tistory.com/307 https://developer-finn.tistory.com/1 https://dev.to/emqx/how-to-use-mqtt-in-python-paho-3b8 http://www.steves-internet-guide.com/cl..
Homography matrix를 이용한 planar rectification를 C++로 구현한 다음 포스트의 내용을 파이썬 버전으로 만들어봤습니다. 이론적인 배경은 해당 포스트를 읽어보세요. Homography matrix를 이용한 planar rectification를 구현 예제 https://webnautes.tistory.com/2121 2023. 7. 1 최초작성 테스트 결과와 코드는 영상에서 확인하세요. https://youtu.be/8lVeReZmNK0 테스트에 사용한 이미지입니다.