Python 13

break, continue, pass 차이 알아보기 (chatGPT 활용)

break, continue, pass 를 맞게 구분해보려고 chatGPT를 사용하여 코드를 만들고 돌려보면서 연습했다. # Example using break, continue, and pass statements numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # Using break statement print("Using break:") for num in numbers: if num == 5: break # Exit the loop if the number is 5 print(num) print("End of loop using break\n") # Using continue statement print("Using continue:") for num in number..

UnicodeDecodeError: 'ascii' codec can't decode byte 0xHH in position Z: ordinal not in range(128) 오류원인은 번역하려는 바이트 값이 128~255 라서이다.

ASCII는, HEX 0x00 ~ 0x7F (== DEC 0 ~ 127) 범위에서만 정의되었다. 그런데 바이트 0x80~0xFF (== DEC 128 ~ 255)를 코덱에 따라 번역하라고 하니, 오류가 나는 것이다. 이 오류가 뜨면, 다른 코덱 쓰면 해결된다. 한국어면 utf-8, cp949, utf-16 순으로 해보고, 영어권이면 적절한 다른 코덱들 쓰면 된다. 오류나는 바이트 값들은 접은글에 넣어뒀다. 더보기 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F 0xA0 ..

한국어 인코딩 과정에서 나오는 주요 Unicode Decode Error 목록

내가 이 문제로 골머리를 좀 앓는다. 나 포함 Unicode Decode Error 와 다투는 많은 이들을 위해 도움이 되었으면 좋겠다. 1. 들어가기에 앞서, position number를 이해한다. byte_data = b'\x00\x01\x02\x03\x04 ... \0xFF' 라는 예시를 들겠다. 인코딩 오류를 볼때 아래의 개념을 쓴다. in position 0 == 0번째 위치 == 바이트값 \x00 in position 1 == 1번째 위치 == 바이트값 \x01 in position 2 == 2번째 위치 == 바이트값 \x01 in position 255 == 255번째 위치 == 바이트값 \xFF 실제 텍스트 데이터는 이보다 복잡하게 나올 것이다만. 바이트, 인코딩, 유니코드 사이의 관계 ..

파이썬 절대 주소값(absolute address) 받아오는 3가지 방법

가끔 그냥 주소를 입력하면 잘 안된다. 이유는 unicode escape 로 인식되는 일부 백슬래쉬+영문자 기호. 그래서 보정해 주어야 한다. 보정할 때 가장 권장하는 방식은 정슬래쉬/ 로 쓰기다. 유닉스나 리눅스 등에서도 호환되는 방법이기 때문. ## 문제: 역슬래시(backslash) 1개로만 된 주소를 바로 넣었다가는, unicode-escape 와 혼동하여 오류날 때가 많다. a = "D:\test\Uopenthis.txt" >>> ''' Input In [0] a = "D:\test\Uopenthis.txt" ^ SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 7-8: truncated \UXXXX..

판다스 데이터프레임 행을 한번에 모두 보기: 어쩌다 한번만, 또는 항상

ipynb로 셀 실행해서 판다스 데이터프레임을 불러오면, 행이 적은 것은 한번에 다 보여주는데, 대체로 max_rows 기본값인 60줄을 넘어가면 콘솔 출력창에서 양끝만 5줄 정도씩 보여주고 가운데는 생략해 버린다. 그걸 강제로 전부 보여달라고 요청하는 코드이다. 주로 알려주던 방법은, 보여주는 개수의 기본값을 변경하는 방법이라 매번 바꾸어주어야 하는데 되게 불편하다. 어쩌다 한두번 길게 봐야 하면 아래의 코드를 실행하는 것이 가장 적당하다. 아래 코드에서 필요한 만큼 갖다쓴다. 일반적으로는 None 쓰는 것이 제일 편리하다. 언제나 최대 개수를 보여달라는 뜻이다. import pandas as pd foo = pd.DataFrame(foo_path) with pd.option_context( 'disp..

DeepLab v3+ 간단한 설명

DeepLab v3+ 자료들 논문: https://arxiv.org/abs/1802.02611 github 코드: https://github.com/rishizek/tensorflow-deeplab-v3-plus 과, 이를 한국어로 한번 분석한 https://kuklife.tistory.com/121 [Semantic Segmentation] DeepLab v3+ 원리 논문1. DeepLab V1 : https://arxiv.org/pdf/1412.7062.pdf 논문2. DeepLab V2 : https://arxiv.org/pdf/1606.00915.pdf 논문3. DeepLab V3 : https://arxiv.org/pdf/1706.05587.pdf 논문4. DeepLab V3+ : https:...

CuDNN을 엔비디아 로그인 없이 다운 받는 꼼수 : The solution of, How to download CuDNN without login NVidia.

아래 사이트에 접속하면 된다. Go to the following site, and take next steps in it. Select your version. https://developer.download.nvidia.com/compute/redist/cudnn/ Index of /compute/redist/cudnn developer.download.nvidia.com 2022 Latest version link. CuDNN 8.6.0 for CUDA 11.8 https://developer.download.nvidia.com/compute/redist/cudnn/v8.6.0/local_installers/11.8/ Index of /compute/redist/cudnn/v8.6.0/local_i..

꼬꼬마(Kkma)가 다른 한국어 형태소 분석기에 비해 느린 이유는, 사전 기반 방식(dictionary based)인데, 사전에 단어를 엄청나게 넣어 놓았기 때문이다.

KoNLPy 라이브러리 중에 꼬꼬마가 더 느리다던 사람 글 보고 생각나서 쓴다. 각 형태소분석기 클래스 각각 풀어보면 꼬꼬마가 폴더 용량이 제일 크다. 뜯어보면 사전식인데 거기다가 온갖 단어를 다 집어넣어놓았다. 특히 일반명사 NNG 에는 한 10만개 쯤 들어가있어서 수 메가바이트 나오는걸로 안다. 다른 것들은 특정 상황에서 조사를 빼내는 방식인거 같던데, 꼬꼬마는 수십만개 사전으로 비교해보라고 던져주니 더 느리고 무거울수밖에 없을거다.

Python에서 glob.glob() 쓸 때 디렉토리 주소 끝에를 /* 로 보정해주는 함수

import glob 이런거 빠졌는지 확인하고. glob.glob(path_name) 쓸 때 path_name = '최상단폴더/하위폴더/하위폴더/.../파일있는폴더/*'로 써야한다. 그런데 주소 붙이다보면 '최상단폴더/하위폴더/하위폴더/.../파일있는폴더' 로 가져올 때가 있다. 언제 어디서 무엇이 틀렸는지 모르니까 그냥 함수로 보정해버리는게 편리하다. def adjust_dir_ending(dir_folder_path): ## 보통 sorted(glob.glob(dir_folder_path))에서 dir_folder_path 가 /* 로 끝나는 str이 아닐 때 오류가 난다. ## 이거 설정하는거 자주 깜빡하므로, 폴더 주소를 /*로 정확히 끝내지 않았을 때 /* 를 붙여 보정해주는 함수 ## 실제로 ..