분류 전체보기 26

[Ubuntu Linux/Python] pip가 특정 torch version을 찾지 못함/우분투 파이썬 가상환경 버전 다운그레이드

라이브러리 의존 문제때문에 torch 1.6.0을 설치해야 했었는데 참고로 pip install --upgrade pip 진행해도 실패함 torch 버전을 자꾸 1.11 아래로는 인식을 못하는게 좀 싸해서 python 버전을 다운그레이드 해보기로 했다 일단 저 시점에서 python 버전은 3.10.x였음 1. 일단 패키지 설치 apt-get install python3.7-dev python3.7-venv 사실 원래 설치하고싶었던건 3.6이라 python3.6-venv, python3.6-dev로 자의적으로 바꿔봤는데 없다더라 왜 3.7만 있는지는 모름 1.1. python3.7 위치 확인(optional) which python3.7 사실 안해도 별로 상관없음 보통 /usr/bin/python3.7이기..

[Python] jsonl 파일 읽고 쓰기

1. jsonl 파일이란 json 확장자 { "contents": [ { "index": 1, "col1": "item1", "col2": "item2", ... }, { "index": 2, ... }, ... ] } jsonl 확장자 {"idx": 1, "col1": "item1", "col2": "item2", ...} {"idx": 2, "col1": "item1", "col2": "item2", ...} ... 2. jsonl 파일 쓰기 import json data = {"idx": 1, "col1": "item1", "col2": "item2"} with open(filepath, "w", encoding="utf-8") as fp: fp.write(json.dumps(data, ensure..

[Python/Numpy] No module named 'numpy.core._multiarray_umath'

구글링해보니까 pip install --upgrade pip 최신 버전으로 업그레이드 하면 된다함 문서들 몇 개 더 찾아보니까 최신버전이 1.20.3에서 성공하신 분 있고 1.18에서 성공하신 분 있더라 다른 라이브러리들 의존문제때문에 1.19 아래로는 내려갈 수가 없어서 1.20.3으로 해봤더니 성공함 결론: pip install numpy==1.20.3

[Python] 예외처리

그냥 혼자 프로젝트 할 때는 예외처리를 if condition: ... else: exit() 로 해버리면 편했는데 이제 다른 사람들과 협업을 하려고 하면 그렇게 하면 안되잖음 다른 팀원들이 님의 코드를 굳이 뜯어봐야 할 필요는 없습니다... 그렇다고 if conditions: ... else: print("Error Message") exit() 할 수도 없는 노릇 직관성이 안살잖아 그래서 직관적으로 예외처리 하는 방법들 모아둠 1. 클래식한 try ~ except (직관적이긴 하지만 if ~ else랑 크게 다를 건 없음) try: # conditions ... except: print("Error Message") exit() 2. raise (1과 유사) if: ... else: raise Exc..

[Python/Pandas] 다중 조건으로 데이터 행 추출하기(indexing with multidimensional key)

우선 일반적으로 데이터프레임에서 조건(단일조건)에 맞는 행 추출하는 법 data = data.loc[data["column_name"] == condition] # data["column_name"] == condition 내의 조건을 필요에 맞게 수정 그리고 데이터프레임에서 특정 열만 추출하는 법 column_names = ["col_name1", "col_name2"] items = data.loc[:, column_names] 이 두 개를 섞어서 다중 조건을 이용해 필요한 행을 추출하면 될 것 같은데? column_names = ["col_name1", "col_name2"] conditions = [1, 2] data = data.loc[data[:, column_names] == conditio..

[Python] 특수문자 제거

진짜 숫자/알파벳/문자만 남기고싶을 경우 pattern = re.compile("[^가-힣a-zA-Z0-9]") # 나중에 pattern.sub("바꿀 문자열", "오리지널 문자열")으로 쓰면 됨 남기고싶은 특수문자(물음표, 느낌표 등)가 있을 경우 pattern = re.compile("[-=+,#/\?:^.@*\"※~ㆍ!』‘|\(\)\[\]`\'…》\”\“\’·]" # 대괄호 내 특수문자 중 남기고싶은 것만 지우면 됨

[Python] List Comprehension + if ~ else

result = [data if _statement_ else another_data for data in dataset] Q. 갑자기 이걸 왜 적으세요? A. 의식의 흐름대로 for문 다음에 if문 썼다가 syntax error 나서 뇌정지옴 +) 02.02. 추가 아무리 생각해도 else가 없으면 안돌아간다는게 이상해서 다시 if문 뒤로 빼봤더니 잘돌아감 왜 저때는 안돌아갔던거지 뭐임 나중에 확인해봐야겠다

[Python/Pandas] nan 데이터(결측값)가 있는 행/열 제거

dropna 구글링을 몇번이나 하는건지 좀 더 체계적으로 알아듣기 쉽게 작성한 글은 얼마든지 있으니까 그냥 대충 결론만 적음 (1) nan이 있는 행 제거 df = df.dropna() (2) nan이 있는 열 제거 df = df.dropna(axis=1) (3) 특정 열의 값으로 nan을 갖는 행 제거 df = df.dropna(subset=["col_name_1", "col_name_2"]) (4) 그 외 파라미터 how : choice=["any", "all"], default="any"; 행/열의 feature 중 하나만 nan이어도 drop하면 any, 모든 데이터가 nan이어야만 drop하면 all inplace : type=bool, default=False; True면 원본 데이터에 바로 ..

[Python] json utf-8 인코딩 한글 깨짐 해결

한달 전까지 죽어라 쓰던건데 한달 안썼다고 그새 또 까먹음... 일단 python에서 dictionary 데이터를 json 파일으로 저장하는 방법은 다들 알다시피 import json ... with open("temp.json", "w", encoding="utf-8") as jf: json.dump(data, jf) 인데 아무 생각없이 저렇게 쓰다보면 파일이 \uadf8 어쩌구 하는 유니코드로 나온다 해결방법은 간단함 import json ... with open("temp.json", "w", encoding="utf-8") as jf: json.dump(data, jf, ensure_ascii=False) ensure_ascii 설정을 False로 바꿔주면됨 너무 간단한 에러와 해결책이라 이미 해..