https://light-tree.tistory.com/8

 

파이썬(python) importlib, __import__(), getattr 을 사용하는 입력으로 동적 import

개발을 진행하다 import를 사용자의 입력에 따라 동적으로 사용하고 싶은 경우가 생겼습니다. 파이썬에서 동적 import 하는 방법을 공부했고, 정리하고자 합니다. * 모듈(module)은 클래스, 함수, 변수

light-tree.tistory.com

 

https://jh-bk.tistory.com/29

 

'Python > 기초' 카테고리의 다른 글

함수, 클래스, 모듈, 패키지 간단 개념  (0) 2023.06.06
Pandas 사용 함수  (0) 2022.04.22
각 type별 함수 사용  (0) 2022.04.19
파이썬 나아가기  (0) 2019.09.05
Python 프로그램 입출력하기  (0) 2019.09.05

https://hyunsitstory.tistory.com/entry/python-%ED%8C%A8%ED%82%A4%EC%A7%80-%EB%AA%A8%EB%93%88-%ED%95%A8%EC%88%98-%ED%81%B4%EB%9E%98%EC%8A%A4-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A6%AC

'Python > 기초' 카테고리의 다른 글

동적 import가 필요할때 - importlib  (0) 2023.07.04
Pandas 사용 함수  (0) 2022.04.22
각 type별 함수 사용  (0) 2022.04.19
파이썬 나아가기  (0) 2019.09.05
Python 프로그램 입출력하기  (0) 2019.09.05

가상환경 연결하기

우리는 앞으로 각 가상환경 커널을 jupyter notebook 혹은 lab과 연결할것이다. 

그러기 위해 우리는 ipykernel을 base에 다운받아야한다. 일단 최신버전으로 받아주자. 

conda install ipykernel

그리고 우리는 ipykernel을 이용해 가상환경에 연결해 줄 것이다. 

python -m ipykernel install --user --name [가상환경 이름] --display-name [커널 이름]

이렇게 원하는 가상환경에 연결해주고 jupyter lab을 실행한다면 하단에 이런 표시가 나올것이다. 

 

Asthma는 나의 가상환경 이름이다. 저 부분을 클릭하면 연동된 가상환경들을 선택할 수 있고 원하는 가상환경을 선택하여 활용하면 된다. 

 


*** 매번 가상환경을 만들어주면, 다시 jupyterlab을 설치하고 연동해줘야한다. 안그러면 나중에 99.99999999% no moduled error로 고생한다 (내 얘기)


가상환경 연결 끊기

 

가상환경을 제거하고난 뒤에도 jupyter notebook 혹은 lab에 여전히 가상환경 이름이 남아있다. 

이는 kernel을 끊어주지 않았기 때문이다. 

아래를 수행해서 커널을 끊어주자!

jupyter kernelspec uninstall 가상환경명

내가 이걸 지금할게 아닌데... 환경변수를 내맘대로 이리저리하다가 뭔가 크게 잘못되어서 그냥 맥을 밀어버렸다

다시 Python3를 설치하는김에 뼈에 새긴다고 생각하고 블로그포스팅을 하게됐다...

 

우선, Python3를 설치하고 아나콘다를 설치해도 되지만 아나콘다를 설치할때 Python도 함께 설치되기때문에 

우선 아나콘다부터 설치해본다. 

 

아나콘다 설치하기 

https://www.anaconda.com/ 

 

Anaconda | The World's Most Popular Data Science Platform

Anaconda is the birthplace of Python data science. We are a movement of data scientists, data-driven enterprises, and open source communities.

www.anaconda.com

위 링크에 들어가서 자신의 OS에 맞는 anaconda를 다운 받아주자. 필자는 Mac OS 환경이다. 

웬만하면 초보자분들은 패키지로 된것을 추천드린다. 

 

그리고 지금부터 가상환경을 설정할것이다. 

 

가상환경 생성하기 

다운로드가 완료되면 우리에게 친숙한 Terminal을 켜보자. 

리눅스와 Mac OS의 terminal은 윈도우환경만 사용한 분들에게 조금 낫설설지만 파이썬을 다루는 사람이라면 윈도우의 cdm라고 보면 된다. terminal을 켰다면 가상환경을 생성해보자

 

1. 가상환경 생성

아래의 명령어들을 terminal에 입력해서 생성할 가상환경과 그 가상환경의 python버전을 설정해준다. 

conda create -n 가상환경 이름 python=파이썬 버전
예를 들면 => conda create -n cofls python=3.8.0

2. 가상환경 삭제 

가상환경을 자유롭게 삭제할 수 있다. 

conda remove -n 가상환경이름 --all

가상환경을 하나 만들었다면 그 가상환경을 활성화해본다. 앞으로 각 가상환경별로 library관리를 하면 파이썬으로 라이브러리를 활용하는데 큰 도움이 될것이다. 라이브러리를 다운받기 위해서는 가상환경을 활성화해야한다. 

 

3. 가상환경 활성화하기

conda activate 가상환경 이름

 

4. 활성화 후 라이브러리 설치

활성화된 가상환경 안에서 원하는 패키지의 원하는 버전으로 다운을 받아준다. 

conda install 패키지 이름 == version
예) conda install numpy == 1.16.0

 

    그리고 가상환경에 잘 받아졌는지 확인하고 싶다면 활성화된 가상환경안에서 conda list라는 명령어로 설치된 라이브러리들을 볼 수 있다. 

이제 원하는 라이브러리를 설치하는데는 문제가 없을것이다. 

그렇다면 과연 가상환경을 왜 만든것일까? 어떤 편리함을 위해? 

앞으로 내가 원하는 가상환경 위에서 내 코드가 원하는 라이브러리 버전에 맞게 작동할 수 있도록 만들어주어야한다. 

내 코드를 어디서 편집할까? 필자는 주로 jupyter notebook혹은 jupyter lab을 사용하여 python코딩을 한다.

 

그럼 일단 덮어두고 어짜피 사용해야할 jupyter notebook과 jupyter lab을 설치하자!

 

현재까지 순차적으로 따라왔다면, 현재 당신의 상태는 활성화된 가상환경 안에 있는 상태일것이다. 

 jupyter notebook과 jupyter lab을 base에 설치하기 위해 활성화된 가상환경을 비활성화로 만들어주자. 

 

5. 가상환경 비활성화

conda deactivate

저 위에껄 치면 간단히 비활성화된다. 

이제 상태는 base로 돌아갔을것이다. 그곳에서 conda install jupyter notebook 혹은 jupyter lab을 해주면 된다. 

conda install jupyter notebook
혹은
conda install jupyter lab

 

설치가 끝나면 이것들과 우리의 가상환경을 연결해주어야 한다. 

이는 다음 포스팅에서 진행할 것이다. 

1. dtype and type

dtype: numpy에 해당하는 함수로, 데이터 타입을 확인할 수 있음

type: pandas의 함수로, 데이터 타입을 확인할 수 있음

 

2. loc and iloc

loc(): pandas함수로 row의 정보로 검색

ex) data.loc[[1,2,3]]

iloc(): pandas함수로 row의 index로 추출

ex) data.iloc([:,3])

 

3. sort_values

ex) data.sort_values('Age') , Age = 변수이름

 

4. 중복값찾기: pd.duplicated()

객체.duplicated(): 전체 중복 row를 찾음

객체.duplicated(['컬럼명']): 해당 컬럼이 중복되는 row만 찾음

ex) df[df.duplicated()]

 

5. 중복값 제거: pd.drop_duplicates() 

 

6. map 과 replace

dictionary형 데이터를 이용해서 컬럼으로 정보를 붙일때 => map, 자리의 정보를 대체할때 => replace

 

7. groupby (pivot_table대신 사용)

df.groupby(['컬럼명'])['보고싶은컬럼명'].sum().to_frame()

#output은 groupby object라서 꼭 dataframe으로 변환하는 과정이 필요함.

 

'Python > 기초' 카테고리의 다른 글

동적 import가 필요할때 - importlib  (0) 2023.07.04
함수, 클래스, 모듈, 패키지 간단 개념  (0) 2023.06.06
각 type별 함수 사용  (0) 2022.04.19
파이썬 나아가기  (0) 2019.09.05
Python 프로그램 입출력하기  (0) 2019.09.05

파이썬 함수를 사용하다보면 이런 의심이 든다...

어디까지 온점을 붙여서 함수를 사용할 수 있을까? 

예를 들면, 아래처럼 어레이도 만들고 만들어진 어레이의 합을 구할 수 있는 함수를 쓸 수 있는 것 처럼...? 

 

np.array([1,2,3]).sum()

이건 무조건적으로 함수를 갖다 쓸 수 있는게 아니다!

 

온점 앞에 있는 데이터 특성이 무엇인지 확인하고 이에 사용할 수 있는 함수들이 따로 있다. 

예를 들면 판다스의 series 타입에서는 '.unique'를 사용해 중복을 제거할 수 있지만, 

판다스의 Dataframe타입에서는 저 함수가 사용되지 않는다. 'drop_duplicate()'함수를 사용해서 중복을 제거해야한다.

이때 우리가 쓰려는 함수의 대상이 되는 것의 type을 확인하거나, 혹은 대상을 dir()함수 안에 넣어서 사용 가능한 함수를 확인할 수 있다. 

'Python > 기초' 카테고리의 다른 글

함수, 클래스, 모듈, 패키지 간단 개념  (0) 2023.06.06
Pandas 사용 함수  (0) 2022.04.22
파이썬 나아가기  (0) 2019.09.05
Python 프로그램 입출력하기  (0) 2019.09.05
Python 제어문  (0) 2019.09.05

Colab! Python을 공부하는 사람이라면 한번쯤 들어봤을 내용이다. 

 

Colab은 Colaboratory를 줄인 말이자, 클라우드 기반 무료 Jupyter 노트북 개발환경이다. 

 jupyter 노트북과 같이 Python을 브라우저에서 실행할 수 있도록 구글이 배포하였다. 

 

그래서 구성이 필요없고 환경설정 및 구동준비가 빨리 끝나며, GPU를 무료로 사용할 수 있고, 간편하게 공유가 되어 여러명에서 수정이 가능하다. 무엇보다도 성능이 일반 개인PC보다 좋다는 강점이 있어 딥러닝 학습을 빠르게 하는데 좋다.

Git과 연동이 좋아 스터디를 진행하기 위해 사용한다면 다들 환경을 맞추는데 시간을 쏟지 않아도 되는 좋은 개발환경이다.

 

하지만, 세션 유지 기간이 12시간이기 때문에 작업하던 자료들이 날아갈 수 있다.

하지만 구글 클라우드와 연동하여 '.ipynd'확장자로 저장이 된다. 

 

 

 

 

파이썬 날개달기

 

  1. 클래스 (class)

    1. 한가지 작동방식의 함수를 여러개 찍어낼 수 있도록 하는 것

      1. ex) 과자틀 -> 클래스, 과자 -> 객체

    2. 객체와 인스턴스의 차이

      1. 인스턴스: 클래스로 만든 객체

    3. 매서드 (method)

      1. 정의: 클래스 내에 있는 함수

      2. 정의할 때, 가장 앞에 self를 사용 -> self는 객체를 받음

        1. ex) class calculator: def add(self, a,b):

    4. 생성자 (constructor)

      1. 객체에 초깃값을 설정해야할 필요가 있을 때, 생성자를 구현하는 것이 안전한 방법 -> __init__(self, 필요 변수1, 필요 변수2,...):

    5. 클래스 상속

      1. 기존에 존재하는 클래스 기능을 상속받을 수 있음

      2. 방법: class 클래스이름(상속할 클래스):

      3. 사용하는 이유: 주로 기존 클래스에 기능을 추가하고 기존것을 해치지 않으려고 할 때

    6. 매서드 오버라이팅

      1. 부모가 갖는 매서드를 새로 작성하고 싶을 때

        1. ex) calss 새 클래스(부모매서드): 동일한 함수 이름: 작성

    7. 클래스 변수

      1. 클래스 변수는 객체들과 모두 이어져 있음

 

  1. 모듈

    1. 정의: 함수, 변수, 클래스를 모아놓은 파일

      1. 모듈 이름 = 파이썬 파일 이름

      2. 파이썬 라이브러리란? 파이썬을 다운받을 때 설치하는 모듈들을 의미

    2. 불러오기

      1. 기본:  import 모듈이름 (.py 제외하고)

        1. ex) import mod1

      2. 함수만 직접사용: from 모듈이름 import 함수1, 함수2, ….

        1. from mod1 import add -> add함수 바로 사용

        2. 모든함수를 불러오고 싶을 때, 함수 이름대신 -> *

    3. if __name__ = ‘__main__’

      1. 모듈안에 수행문을 돌리고 싶지 않을 때

    4. 클래스나 변수등을 포함한 모듈

      1. 만약 class가 사용하고 싶다면 -> import mod2; a = mod2.클래스 이름() 

      2. 만약 함수가 사용하고 싶다면 -> import mod2; a.함수(변수)

    5. 다른파일에서 모듈 불러오기

      1. 모듈을 저장한 디렉터리 사용하기

        1. sys를 사용: 파이썬 라이브러리가 설치되어 있는 디렉토리 확인

      2. python 환경변수 바꾸기

        1. set명령어를 사용해 python path환경변수에 mod2.py파일이 있는 디렉토리를 설정

 

  1. 패키지

    1. 정의: 파이썬 모듈과 디렉토리를 계층적으로 정리해주는 구조

    2. 불러오기

      1. import 패키지.모듈.

      2. from 패키지 import 모듈

      3. import 패키지.모듈 import 매서드

        1. 주의사항: import의 마지막은 언제나 모듈, not 매서드

    3. __init__.py함수: 해당 디렉토리가 패키지의 일부임을 알려주는 역할, 만약 패키지에 포함되는 디렉토리에 이 함수가 존재하지 않는다면 패키지로 인식하지 못함

        1. python 3.3부터는 없어도 인식, but 안전하게 하기 위해 사용 ^^

      1. 모듈을 *로 모두 불러오는 경우에 -> __init__.py에 __all__을 추가해야 함

    4. 다른 모듈의 함수를 특정 모듈의 함수에서 사용하고 싶을 때

      1. import 패키지.모듈; def 함수: 사용가능

 

  1. 예외처리

    1. 에러 종류

      1. FileNotFoundError: 없는 파일을 찾을 때 

      2. ZeroDivisionError: 0으로 무언가를 나눌 때

      3. IndexError: Index관련 에러가 날 때

    2. 오류 예외 처리 기법

      1. try,except문

        1. 기본 구조: try: 수행문; except 발생오류 as 변수: 수행문

          1. 설명: try 블록 중 오류가 발생되면 except 블록이 수행

        2. 여러개의 오류를 처리할 때

    3. try.. finally문

      1. 사용한 리소스를 종료할 때 사용

        1. 문법 try: 수행문; except 오류문1 as 변수: 수행문1; except 오류문2 as 변수: 수행문2

        2. 한꺼번에 처리할 때 문법: try: 수행문; except (오류문1, 오류문2) as 변수

    4. 오류 회피하기

      1. 문법: try: 수행문; except 오류문: pass

    5. 오류를 일부러 발생시키기

 

  1. 내장함수

    1. 사용

      1. abs(): 절대값 반환

      2. all(): 하나라도 False가 있으면 False/ any(): 하나라도 True가 있으면 True

      3. chr(): 아스키코드값을 넣으면 대응 문자 반환

        1. ord(): 반대를 수행

      4. dir(): 객체가 가지고 있는 변수나 함수를 반환

      5. divmod(): 몫과 나머지를 튜플형으로 반환

      6. enumerate(): 순서가 있는 리스트, 튜플, 문자열을 값으로 받아서 순서 index를 enumerate의 객체로 반환

      7. eval(): 실행 가능한 문자값을 실행하여 결과로 돌려줌

        1. ex) eval(‘1+3’) = int(3)

      8. hex(): 정수값을 받아서 16진수로 반환

      9. oct():정수를 8진수로 변환

    2. 자주사용

      1. id(): 객체의 고유 주소값 반환

      2. input(): 입력값을 받는 함수 -> 언제나 integer

      3. int(): 정수로 반환

      4. instance(함수이름, 클래스이름): 함수가 해당 클래스의 함수인지 여부 확인 -> T/F 값으로 반환

      5. len(): 입력값의 길이

      6. list(): 리스트로 변환 

      7. max()/min(): 입력값의 최대값/최솟값

      8. open(‘함수명’,’mode’): 함수 오픈

      9. pow(a,b): a의 b제곱을 반환

      10. range(시작, 마지막, delta): 범위값을 반복 가능한 객체로 만들어 반환

      11. round(): 반올림 함수

      12. sorted(): 정렬 함수

      13. str(): 문자화 함수

      14. sum(): 입력받은 모든 리스트나 튜플값을 합산하는 함수

      15. tuple(): tuple로 변환하는 함수

      16. type(): 자료형이 무엇인지 반환하는 함수

 

  1. 외장함수

    1. sys: 파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈

      1. 강제로 스크립트 종료: sys.exit(), 프로그램 내에서 사용

      2. 자신이 만든 모듈 불러와서 사용: sys.path -> 파이썬 모듈이 저장된 위치를 나타냄

        1. sys.path.append(‘경로’): 사용하려는 모듈의 경로를 추가하여 사용 가능

    2. pickle: 객체의 형태를 그대로 유지하여 파일을 저장하고 불러올 수 있는 모듈

      1. 사용방법(쓰기)

        1. import pickle

        2. 원하는 파일 f =open(‘파일명’,’w’)

        3. data 작성 data = {1: ‘you’,2: ‘need’}

        4. pickle.dump(data,f)

        5. f.close()

      2. 사용방법(읽기)

        1. import pickle

        2. 원하는 파일 open ‘r’

        3. data = pickle.load(f)

        4. f.close()

    3. os: 환경변수나 디렉터리 파일등의 os자원을 제어할 수 있게 해주는 모듈

      1. 내 시스템에 환경변수 값을 알고 싶을 때: os.environ

      2. 디렉토리 위치 돌려받기: os.getcwd

      3. 시스템 명령어 호출하기: os.system(‘명령어’)

      4. 실행한 시스템의 명령어 결괏값 돌려받기: os.popen()

    4. shutil: 파일을 복사해주는 모듈

      1. 사용방법: shutil.copy(‘복사할파일명’,’새로만들어질파일명’)

    5. glob: 디렉토리에 있는 파일을 모두 리스트로 변환

      1. 사용방법: glob.glob(‘디렉토리 위치’)

    6. time

      1. time.time(): 1970년 1월 1일 0시 0분 0초를 기준으로 지난 시간의 초단위를 반환

      2. tile.localtime(): time.time()이 돌려준 값을 연도, 월, 일, 시, 분,초 … 형태로 바꿔주는 함수

      3. time.asctime(): time.localtime에 의해서 반환된 튜플 형태의 값을 인수로 받아 날짜와 시간을 알기 쉬운 형태로 반환

      4. time.ctime(): 현재 시간을 반환

      5. time.strftime(‘출력포맷코드’,값)

      6. time.sleep(값): 값sec만큼의 텀을 두고 문장을 수행

        1. ex) for i in range(10): print(i); time.sleep(1) -> 1초마다 i값을 print 수행

      7. time.sleep(값): 값sec만큼의 텀을 두고 문장을 수행

    7. calendar: 파이썬에서 달력볼 수 있는 모듈

    8. random: 난수를 발생시키는 모듈

출처: jump to python

'Python > 기초' 카테고리의 다른 글

Pandas 사용 함수  (0) 2022.04.22
각 type별 함수 사용  (0) 2022.04.19
Python 프로그램 입출력하기  (0) 2019.09.05
Python 제어문  (0) 2019.09.05
Python 기초 (특징과 데이터형)  (0) 2019.08.29

+ Recent posts