Programming/Python
-
[TIL] 파이썬 기본, string 함수Programming/Python 2024. 4. 5. 22:09
파이썬은 인터프리터 언어 인터프리터 언어란 기계어 번역 없이 소스코드를 실행시점에 해석해서 컴퓨터가 처리하게 하는 것이다. 실행속도가 느리지만 간단하다. 객체 지향적 언어 실행 순서가 아니라 단위 모듈 중심의 프로그램 작성 동적 타이핑 언어 프로그램이 실행되는 시점에 데이터 타입을 결정함 외우면 좋을 string 함수 a.capitalize() # 첫문자를 대문자로 변환 a.find('abc') # 문자열에 'abc'가 들어간 위치 반환 a.rfind('abc') # 문자열에 'abc'가 들어간 위치 반환, rfind는 오른쪽부터 a.startswith('abc') # 'abc'로 시작하는 문자열여부 반환 a.endswith('abc') # 'abc'로 끝나는 문자열여부 반환 a.strip() # 좌우 ..
-
[Python] File / Exception / LogProgramming/Python 2023. 8. 29. 21:56
프로그램을 사용할 때, 예상치 못한 일들이 많이 생긴다. Exception 1) 예상 가능한 예외 : 입력이 들어가지 않았다던지.. 2) 예상 불가능한 예외 : 개발자의 실수, 리스트 인덱스 에러, divide 0 에러 등 프로그램도 제품이기 때문에 잘못된 상황에 대한 대처가 필요함! try: #예외 발생 가능 코드 except : #예외 발생시 처리 코드 try: #예외 발생 가능 코드 except ZeroDivisionError: #예외 발생시 처리 코드 except IndexError as e: print(e) except Exception as e: print(e) try: #code except ZeroDivisionError: #code else: #code ###### try: #code e..
-
[Python] String, Function, Scoping rule, 함수 작성 가이드라인Programming/Python 2023. 8. 15. 22:48
(포인터 관련) Call by Value 값만 넘김 Call by Reference 메모리 주소를 넘김 파이썬 함수 호출 방식 Call by Object Reference 호출자와..변수.. swap 할 때 리스트의 경우 listA[0], listA[1] 이 값을 넣어주면 값이 바뀌지 않음 주의. 💥주의!! list_a = list_b 두 리스트 같아짐 list_a = list_b[:] 리스트 복사 Scoping Rule 지역변수 전역변수 함수 내에 전역변수와 같은 이름의 변수를 선언하면 새로운 변수가 생김(전역변수와 같지 않음) 같아지고 싶으면 global 사용. Recursive Function : 재귀함수 자기자신을 호출 ex) factorial Function type hints def type_..
-
[Python] outlier 찾기, 마할라노비스 거리 계산 (실전)Programming/Python 2022. 12. 28. 13:51
마할라노비스 거리에 대한 설명은 이전 글 참조! import numpy as np from scipy.spatial import distance 넘파이와 마할라노비스 거리 계산을 위한 scipy 모듈을 추가한다 만약 에러가 나온다면 터미널에 pip install scipy로 모듈을 다운받는다. X = np.zeros((len(dy_o),2)) for a in range(0, len(dy_o)): X[a][0] = a X[a][1] = dy_o[a] 마할라노비스 거리 계산하는 함수의 사용을 위해 데이터를 array 형태로 만들어주어야 한다. 나는 x,y를 가지는 2차원 배열 형태로 만들어 주기 위해 위처럼 작성하였다. 이미 가지고 있는 데이터 array인 dy_o갯수만큼의 행을 가진 영행렬로 초기화를 한 ..
-
[Python] Outlier(이상치) 찾기 , 마할라노비스 거리 (이론)Programming/Python 2022. 12. 28. 12:23
이상치에 대해 정리된 문서 이상치 탐색을 위한 통계적 방법과 활용 방안.pdf (hira.or.kr) 내가 사용하는 알고리즘에서 outlier를 계산하는 부분의 문제를 발견하였다. 위의 그림에서 맨 밑의 파란 점(outlier)을 제거하면 주황색 선이 더 효율적인 모양으로 바뀔 것이다. 그래서 나는 처음에 z-score라는 방법으로 outlier를 계산했었다. 위 그림처럼 z-score값을 그래프로 나타낸 후, 내가 지정한 threshold값을 넘는 것을 outlier로 판단하였다. 그런데! 여기서 문제가 발생했다. 아래 그림을 보자. 이러한 케이스에서 가로축 60에 가까운 데이터들이 전부 outlier로 판단되는 상황이 발생하였다. 물론 이 상황은 내가 원하던 게 아니다. 그래프의 경향에서 크게 벗어난..
-
[Python] print .format 자릿수 맞추기, 오른정렬, 소수점 출력Programming/Python 2022. 9. 2. 19:36
🔵format 기본 사용 print('test {} {}'.format(10, 20)) >>test 10 20 🔵format 오른쪽 정렬방법 print('test {:>5} {:>10}'.format(10, 20)) 각각 오른쪽으로 5자리, 10자리 정렬이 된다. 🔵format 소숫점 n자리까지 출력 print('test {:>5.3f} {:>10.5f}'.format(10, 20)) 각각 소숫점 3자리, 5자리까지 출력된다. 이렇게 자릿수를 맞춰서 출력하면 데이터를 분석하는데 굉장히 도움이 된다. 추가) C++ 디버깅 출력시에도 {}를 사용해 출력할 때 위의 방법을 사용가능하다!
-
[Python] curve_fit : data로 그래프 그리고 fitting하기Programming/Python 2022. 7. 19. 14:01
🔼그래프를 쉽게 만들어서 보기 위해 python, numpy를 사용합니다. 그래프를 보여주기 위해 pyplot도 import해줍니다. import numpy as np import matplotlib.pyplot as plt ✅txt에 저장되어 있는 데이터를 array로 가져오기 y = np.loadtxt('trajectory.txt', delimiter = ' ',usecols=2, dtype = 'float') delimiter : 구분자 기호(나의 경우는 띄어쓰기) usecols : 어떤 열을 쓸 것인지 ✅x축을 만들어주기(y값과 길이가 같은 array) x = np.array(range(y.shape[0])).reshape(1,y.shape[0]) ❗주의 이렇게하고 출력하면 [[ 0 1 2 3 4..