Development Experience/Python (3) 썸네일형 리스트형 Python 에서 GIL, 멀티스레딩, 멀티프로세싱 GIL, 멀티스레딩, 멀티프로세싱GIL (Global Interpreter Lock)"한 번에 오직 하나의 스레드만 Python 코드를 실행할 수 있다"는 Python의 규칙. 멀티스레딩 (Multithreading)하나의 프로세스 안에서 여러 작업을 나누어 처리. 하나의 GIL을 공유하므로, 진짜 병렬 처리는 아님.멀티프로세싱 (Multiprocessing)여러 개의 독립적인 프로세스를 만들어 작업을 처리. 각자 독립된 GIL을 가지므로, 진짜 병렬 처리가 가능.핵심 비교표 그래서 언제 뭘 써야 하나?내 작업이 CPU를 많이 쓰는가? (복잡한 계산, 데이터 분석 등)Yes → 무조건 멀티프로세싱 사용 내 작업이 I/O 대기 시간이 긴가? (네트워크 요청, 파일 다운로드 등) Yes → 멀티스레딩 또는.. 연속적인 DataFrame의 값들을 몇 개의 그룹으로 나누고 싶을 때 머신러닝 공부를 하다가 0~1의 연속적인 값을 가지는 데이터를 10개의 그룹으로 나누고 싶어졌다. 아래 데이터는 기존의 데이터이다. normalized_train.head() 각 column의 데이터들이 0~1 사이의 연속적인 값들을 가지고 있다. 내가 하고 싶은 것은 0.0 = 0.3) & (normalized_train[column_name] = 0.4) & (normalized_train[column_name] = 0.5) & .. Numpy 차원 낮추기 - ravel() vs reshape() vs flatten() Machine Learning을 공부하다 보면 배열의 차원을 낮추는 경우가 종종 발생한다. 예를 들어 아래와 같이 2차원 배열인 array_2d가 있다고 할 때, 차원을 하나 낮춘다는 의미는 2차원 배열이 1차원 배열이 되는 것이다. 그런데..!! 차원을 낮출 땐 주의사항이 있다. 바로 array_2d의 데이터 변화가 array_1d에 영향을 미치느냐 하는 것이다. 결론부터 말하면, 아래처럼 array_2d의 첫번째 원소값을 바꿀 경우 ravel(), reshape() 으로 차원을 낮춘 array_1d_ravel 과 array_1d_reshape 의 데이터는 바뀌고, flatten()으로 차원을 낮춘 array_1d_flatten은 데이터가 바뀌지 않는다. 잘 모르고 사용하다가 예상치 못하게 변하면 안될.. 이전 1 다음