AI Tech Pre-course 1~10강을 공부하며

thousand_yj·2023년 9월 15일
0

취준

목록 보기
3/3

5. Module and Project

__pycache__

만약 위의 폴더가 생성된다면, 파이썬이라는 인터프리터가 메모리 로딩을 좀 더 빨리하기 위해 컴파일을 시켜줬다~ 라고 이해해주기

module

파이썬에서 module이란 하나의 py(파이썬 파일)을 의미
모듈 안에는 함수, 클래스가 존재할 수 있어 모두 가져오거나 필요한 내용만 골라서 호출할 수도 있음
같은 디렉토리 안에 있어야 호출 가능하다

if name == "main" 사용 이유

파이썬 파일을 모듈로 불러와 호출할 때 해당 파일에 함수, 코드 다 섞여있으면 import를 하자마자 실행될 수 있다. (그냥 print문이 존재하는 등) 따라서 파이썬 파일을 직접 실행할 때만 호출되도록 하고 싶은 구문은 위의 코드로 감싸주면 된다.

만약 모듈로 호출이 된다면 __name__에는 모듈 이름이 설정된다. 해당 파일을 커맨드라인 등 직접 실행한다면 __name__에는 __main__이라는 값(네임스페이스)가 들어간다.

import 방법의 종류

모듈 import시 모든 코드가 메모리에 로딩되는 것을 방지하기 위해 Alias as 를 설정하거나 from을 사용하여 특정 함수나 클래스만 호출할 수도 있다.

여러 방법 중 가독성을 높여주는 방식은 해당 함수가 어디서 왔는지 명시적으로 밝혀주는 Alias 방식이다.

import fah_converter as fah
print(fah.convert_c_to_f(41.6))

위와 같이 fah라는 모듈에서 함수를 불러왔다는 것을 코드만 봐도 알 수 있게 된다.

패키지

모듈이 모여 폴더로 연결, 패키지가 됨 (하나의 대형 프로젝트를 만드는 코드의 묶음)

폴더 별로 __init__.py 구성하기

  • 현재 폴더가 패키지임을 알리는 초기화 스크립트
  • 원래는 없을 경우 패키지로 간주하지 않았으나, python 3.3+ 부터는 X
  • 하위 폴더와 py 파일(모듈)을 모두 구성
  • 앞으로 무엇을 쓸건지 알려주는 역할
__all__ = ["image", "sound"]
from . import image
from . import sound

위와 같은 형식으로 작성

파이썬 가상 환경

virutalenv

virutalenv + pip
가장 대표적인 가상환경 관리 도구
레퍼런스, 패키지의 개수면에서 pip로 설치할 수 있어서 유용

conda

상용 가상 환경 도구
아나콘다에서 사용되는 가상환경 도구
Windows에서 매우 편리~! (컴파일된 도구까지 한꺼번에 다운)
(pip는 python이 C로 되어있는데 pip는 컴파일된 코드가 안 들어가있을때가 있음)

conda create -n 프로젝트이름 python=3.11

위와 같은 형식으로 가상환경을 만들어준 뒤 실행하면 된다.

6. File / Exception / Log Handling

파일의 종류

  • Binary 파일 : 이진법 형식 (컴퓨터만 이해할 수 있다) -> 메모장으로 열면 깨져보임. ex) excel 파일 등 어플리케이션에 종속된 경우
  • Text 파일 : 문자열 형식 (인간이 이해할 수 있다) -> 메모장으로 열면 내용 확인 가능

7. Numpy

Numpy

import numpy as np
보통 np로 alias 처리를 해서 넣는 경우가 대부분

array creation

  • 생성 : test_array = np.array([1,2,3], float)

  • numpy.ndarray 객체로 생성

  • 하나의 데이터 타입만 배열에 넣을 수 있음

  • dynamic typing이 지원되지 않음

  • C의 Array를 사용하여 배열을 생성

  • shape : numpy array의 dimension 구성을 반환
    ex. [[1,2,3,3],[4,5,6,6],[7,8,9,9]] -> (3,4)
    ex. [1,2,3,4] -> (4,) (튜플이라서 값 1개 반환시 뒤에 콤마 존재)

  • dtype : numpy array의 데이터 타입을 반환

  • ndim : number of dimensions 몇차원이냐

  • size : data의 전체 개수

  • nbytes : ndarray object의 메모리 크기 반환

일반적인 리스트와 달리, 원하는 행과 열만 뽑아내는 slicing이 가능함

profile
함께 일하고 싶은 개발자가 되기 위해 노력합니다. 코딩테스트 관련 공부 및 이야기는 티스토리에도 업로드되어 있습니다.

0개의 댓글