목록파이썬/기본 문법 정리 (35)
차밍이
목차 multiprocessing 사용하게된 계기 기록용으로 안읽고 다음 탭으로 넘어가셔도 됩니다. 파이썬에서 처리 속도를 높이기 위해 멀티 프로세싱을 사용할 수 있다. 대용량의 csv 파일 수 천개를 다뤄야 했던 경험이 있다. pandas를 사용해서 파일을 읽어오는 것에만 상당히 많은 시간을 소모한다. 하나의 csv 파일을 읽어오기 위해서 그 동안 가만히 기다려야 하는 시간들이 매우 소모적이라고 생각했다. 대용량 csv 파일도 있지만 절반 정도는 매우 용량이 적은 csv 파일들이었다. 메모리에 문제가 없는 수준에서는 여러개의 파일을 읽어와서 동시에 처리해도 괜찮겠다고 생각했다. 그래서 멀티프로세싱을 사용해 core 4개로 설정했더니 2배 이상 빨라졌다. Good ! 멀티 Pool 사용하기 from mu..
목차 1. example package shapes 구조 __init__과 __all__를 알기 위해서 예시로 사용할 package shapes의 구조와 코드를 먼저 보고가자. tree shapes/ __init__.py area.py volume.py shapes/area.py PI = 3.14 # 원의 면적을 구해 주는 함수 def circle(radius): return PI * radius * radius # 정사각형의 면적을 구해 주는 함수 def square(length): return length * length shapes/volume.py PI = 3.14 # 구의 부피를 구해 주는 함수 def sphere(radius): return (4/3) * PI * radius * radius ..
목차 패키지란? 패키지는 모듈들을 모아 놓은 디렉토리를 뜻합니다. 예를 들어 우리는 평면도형의 면적을 구해 주는 area 모듈과 입체도형의 부피를 구해주는 volume 모듈을 모아서 shapes라는 패키지를 만들었습니다. shapes 패키지의 구조는 아래와 같습니다. shapes/ __init__.py area.py volume.py shapes/area.py PI = 3.14 # 원의 면적을 구해 주는 함수 def circle(radius): return PI * radius * radius # 정사각형의 면적을 구해 주는 함수 def square(length): return length * length shapes/volume.py PI = 3.14 # 구의 부피를 구해 주는 함수 def sphere..
목차 What is Module ? 모듈은 여러 기능을 모아둔 파이썬 파일입니다. 사용할 함수들을 정의해 놓은 파일을 의미합니다. 예를 들어 우리는 평면도형의 면적을 구해 주는 함수들을 모아서 area라는 모듈을 만들었습니다. area.py PI = 3.14 # 원의 면적을 구해 주는 함수 def circle(radius): return PI * radius * radius # 정사각형의 면적을 구해 주는 함수 def square(length): return length * length import area 등의 방식으로 import해서 area 모듈의 circle 등의 함수를 사용할 수 있습니다. What is Script ? 스크립트는 모듈에서 정의함 함수들을 사용하는 파일을 의미합니다. run.py..
Scatter Plot Animation matplotlib.animation.FuncAnimation class matplotlib.animation.FuncAnimation(fig, func, frames=None, init_func=None, fargs=None, save_count=None, , *cache_frame_data=True, *kwargs*) def func(frame, *fargs) -> iterable_of_artists matplotlib에서도 애니메이션 형식으로 움직이는 그래프를 그려줄 수 있다. 그림을 그려줄 fig객체와 시간에 따라 변화하는 데이터의 변화를 어떻게 정의할 것인지에 대한 함수(func)가 필요하다. 보통 matplotlib 에니메이션 관련해서 검색하면 전체 데..
목차 들어가기 Pandas DataFrame에서 apply 매소드를 사용해서 함수를 적용한다. 보통 단일 인자 함수를 사용하는데, 복수 인자를 넣을 수도 있다. 복수 인자를 사용하는 방식에는 두 가지가 있다. 함수가 복수 인자를 받는 경우 복수의 Column 의 데이터를 함수에 넘겨주는 경우 두 가지 방법에 대해서 알아보고 적절하게 사용하자. 복수 인자 사용하는 경우 import pandas as pd df = pd.DataFrame({"A": [10, 20, 30], "B": [-10, -20, -30]}) def subtractAndMultiply(x, y, z): return (x - y) * z df['A'].apply(subtractAndMultiply, args=(-10, 2)) df['A']..
목차 들어가며 jupyter notebook에서 셀 단위로 속도를 확인하는 방법을 알아보자. 속도를 비교해볼 함수 리스트의 원소들을 모두 곱하는 함수로 아래와 같다. def multiplyAll_v1(s:list) -> int: ans = 1 for n in s: ans *= n return ans from functools import reduce def multiplyAll_v2(s:list) -> int: return eval("*".join([str(n) for n in s])) def multiplyAll_v3(s:list) -> int: return reduce(lambda x, y: x * y, s) 해당 함수나 reduce, eval 함수에 대해 더 알고 싶다면 [Python] 리스트 요소..
목차 들어가며 리스트 요소들 전체의 합은 sum으로 구해지는데 리스트 요소들 끼리의 곱은 구해지지가 않는다. 그래서 해당 방법에 대해 알아보자. 총 3가지의 종류가 있다. for문 돌아가며 수행하기 eval과 join 함수를 사용하기 reduce함수 사용하기 for 문 수행하기 def multiplyAll_v1(s:list) -> int: ans = 1 for n in s: ans *= n return ans eval 함수와 join 메소드 사용하기 from functools import reduce def multiplyAll_v2(s:list) -> int: return eval("*".join([str(n) for n in s])) eval 함수에 대해서 잘 모른다면 다음 포스팅을 참고하면 됩니다...
목차 eval() 과 exec()는 무엇인가? eval 과 exec 함수는 파이썬의 내장 함수이다. 문자열로 적어진 수식 혹은 코드를 파이썬 코드로 실행할 때 사용된다. eval : 문자열로 구성된 식을 처리한다. exec : 문자열로 구선된 코드를 컴파일하여 수행한다. eval 함수 문자열 식을 수행한다 식만 처리하므로 변수 선언 및 할당과 같은 것은 할 수 없다. eval("3 * 4 * 5 * 6") >>> 360 코드 내에 변수들의 값 또한 잘 받아서 수행한다. a = 10 eval("a * 3 * 4 * 5 * 6") # 문자열 식의 a 는 파이썬의 a 변수와 동일 >>> 3600 eval은 수행한 후 결과 또한 반환한다. 위의 수식 결과를 return 하는 것을 볼 수 있음 exec 함수 문자..
목차 getattr() 속성 값을 가져오는 함수 class Animal: leg = 4 size = "Big" def enemy(self): print("컹컹컹!") def friend(self): print("왕왕조왕") animal = Animal() animal.leg >>> 4 getattr(animal, "leg") >>> 4 geattr에 대해서는 더 자세하게 작성한 게시글을 참고하면 좋습니다. [Python] getattr() 를 사용해서 간결하게 코드 작성하기, 예시 및 장점 [Python] getattr() 를 사용해서 간결하게 코드 작성하기, 예시 및 장점 목차 getattr() 구문 getattr(object, attribute, default) [매개변수] object : 필수. 객..