본문 바로가기

파이썬(Python)/간단한 연습

(12)
파이썬 람다식(람다함수) 연습장 for 문을 돌리면서, if 조건에 맞는 값만 리스트에 추가. # 변수들 선언, 정의는 생략 # 기초적인 구문으로 적어야 할 내용 folders_list = [] for i in os.scandir(folder): if f.is_dir(): folders_list.append(f.path) # 람다식(람다함수)를 써서 만들어낸 간단한 구문. folders_list = [ f.path for f in os.scandir(folder) if f.is_dir() ] 나무위키 람다식 예제. for 문을 돌리면서 조건에 맞는 값을 출력. # 기초적인 구문으로 적어야 할 내용. for i in range(10): print(i) # 람다 함수로 만들어낸 간단한 구문 [print(x) for x in range(10..
with open 사용할 때 read().splitlines() 와 readlines() 차이: 리스트의 맨 마지막에 \n 의 존재 유무. 둘 다 비슷하게 리스트로 반환해주는데, 이상하게 readlines()는 맨 마지막에 개행된 기호까지 같이 뽑아준다.
with open (path, 'r+') as x : 와 with open (path, 'w') as x: 의 차이점 r+를 쓰면, 앞에서부터 '수정 모드'로 바꾸고 w를 쓰면, 전체를 지운뒤 새로 쓰는 형태로 간다. 나머지 모드는 https://blockdmask.tistory.com/454 [python] 파이썬 파일읽기, 파일쓰기 (open , close, write, read, tell, seek) 안녕하세요. BlockDMask 입니다. 오늘은 파이썬에서 파일을 생성하고 읽고 쓰는 파일 입출력을 한번 다뤄볼까 합니다. 여기서 다룰 파일 관련 함수는 open, close, write, writeline, writelines, read, readline, rea blockdmask.tistory.com
판다스(pandas) 옵션에 True 대신 1, False 대신 0 넣어도 잘 동작한다만, True/False로 쓰는 게 안전하다. pd.to_csv 사용해서 확인해보니, True나 False 로 길게 안쳐도 된다. 대신에 None 들어가야 하는자리에 0 쓰면 안될 때가 있다. 대표적으로 index_col 같은거. 값 줄때 None을 써야 아예없다고 인식하고, 0은 0번째 줄(엑셀의 첫번째 줄)로 가져오라고 동작한다. 그냥 True, False 로 쓰는게 안전하다. 그런데 치기 귀찮으니까 T = True F = False N = None 맨 먼저 실행시켜 놓고, 약어로 써먹으면 편리하다.
파이썬 내장 함수는 복사하기 어렵다. It is hard to copy a built-in function in Python 스펠링을 자주 틀리는 내장 함수를 복사해서 써먹으려고 찾아봤는데, 아래의 검색어로 찾아서 나온 상위 스택오버플로 구문엔 없다. The solutions given in following are not working if you want to make a copied funcion of a built-in function Python. https://www.google.com/search?q=how+to+create+a+copy+of+a+python+funciton&oq=how+to+create+a+copy+of+a+python+funciton&aqs=chrome..69i57j33i10i160l3j33i21.7615j1j7&sourceid=chrome&ie=UTF-8 🔎 how to create a cop..
파이썬 함수명과 변수명 분리해서 잘 짓는 방법: 함수명은 동사로 시작하고, 변수명은 명사로 시작하기. 파이썬은 PEP8 규칙에 따라, 함수명과 변수명 둘다 영어소문자a to z 와 언더바_ 와 숫자 0~9 만 쓴다. 문제는 함수명과 변수명의 표기에 영어대문자를 쓰지 않도록 권장하기 때문에 대충 지었다가는 이 단어가 함수인지 변수인지 헷갈릴 수 있다. 그래서 둘을 읽을때부터 잘 구분하는 식별자 같은걸 어떻게 넣는지 궁금했다. 그러나 How to make a good name of function name and variable name 이런걸 쳐봐도 좋은 예제를 보여주면서 요령(노하우, know-how)을 알려주는 사람이 딱히 없었다. 다행히 이 분이 괜찮은 예문을 적어두었다. https://dkje.github.io/2020/08/03/CleanCodeSeries2-copy/ 2. 변수명과 함수명 짓기 ..
판다스 데이터프레임에서 빈 셀은 NaN으로 표기된다. 그리고 파이썬에서는 NaN 과 Null 을 같다고 취급하므로, isna 와 isnull 역시 같은 기능을 한다. 아래는 엑셀로 저장한 스프레드시트를 판다스 데이터프레임으로 불러왔을때 모습이다. col_index = 0th row row_index = None
다중 for loop 의 변수명을 같게 쓰면 안되는 이유: 중간에 바뀐다. for 문 너무많이 겹치면 당연히 느려지는데 그 이야기가 아니다. 동작 자체는 크게 문제없는데, 출력을 걸어보면 마지막 쯤에 문제가 있을 수도 있다. 특히 해당 변수값을 사용해서 무엇을 한다면 말이다. 아래 예제는 이중 for문에서, 변수를 i 로 같게 쓴 상황이다. 마지막 루프에서 i = 9를 썼는데 내부 루프때문에 i = 0, i =1 을 사용해서 결국 i =1 로 끝난것을 볼 수 있다. 무턱대고 i 를 다른 계산에 써버렸다간 큰일난다.
time stamp method in Python DeepLearning Xception 을 사용했다. 에포크 사이간격 잴때 처음 시작-끝을 재기보다는 각 에포크에 callback을 지정해서 time을 저장한 뒤 합쳐야 더 정확하다. 실제로 결과가 callback(cb) 로 저장한 리스트의 총합 < code cell 에 뜬 시간 < 전체 시작-끝 띄웠을때 시간 으로 나온다.
for loop 은 최대한 적게 써야 빠르다. [('단어1', #빈도1), ('단어2', #빈도2), ... , ('단어n', #빈도n)] 이라는 tuple(str, int)-list 두개(input1, inpu2)에서 겹치는 단어(intxn에 추따로 단어만 저장)만 뽑아서 그 빈도수를 더하는 연산이다. 몇달전 초창기에는 전수조사 방식으로 만들었다. 전체 목록을 보며 대조해가면서 조사하라는 구문. intxn 과 input1, intxn과 input2를 각각 조사해야되다 보니 길이가 엄청나게 길다. 최근에 .index 라는 기능을 찾아내어 이를 썼더니 훨씬 간단해졌다. 실제로 속도가 어마어마하게 빨라졌다. 그래서 처음에 내가 잘못만든줄 알았는데 코드분석 해보니 느릴수밖에 없었겠더라. 저 index 라는 기능은 특정 행렬에서 어떤 단어의 위치를 반환한다..