Anaconda & Jupyter Notebook

Taehun Jeong·2023년 3월 2일
0
post-thumbnail

Anaconda

공식 홈페이지

Anaconda는 Python/R에 대해 데이터 사이언스 및 머신 러닝에 적합한 작업을 할 수 있도록 패키지 의존성 관리 및 배포를 도와주는 오픈 소스 패키지 매니저이다. 설치하면 기본적으로 Numpy, Pandas, matplotplib 등의 패키지를 제공한다.

conda --version

conda를 앞에 붙여 명령어를 사용할 수 있다.

가상환경

Anaconda를 사용함으로써 얻을 수 있는 또 다른 장점으로는 가상 환경의 쉬운 생성 및 관리가 있다. Anaconda에서 기본적으로 패키지를 관리해주고 패키지들간의 의존성을 관리해주긴 하나, 여러 라이브러리들을 사용하다 보면 충돌이 발생할 수 있다. 가상환경을 생성하면 독립적인 환경을 구축할 수 있으며 프로젝트에 필요한 모든 라이브러리와 의존성을 포함하는 고립된 환경에서 작업함으로써 표준화된 개발 환경을 유지할 수 있다.

Jupyter Notebook

Anaconda를 설치하면 Jupyter notebook도 설치된다. Jupyter Notebook은 웹 기반의 Python, R, Julia 통합 개발 환경이다. '셀' 단위로 작업이 이루어지며, 코드 셀을 생성하여 프로그램 코드를 작성하고 실행하거나 마크다운 셀을 생성하여 마크다운 문서를 작성할 수 있다. 작업 내용은 .ipynb 확장자의 형태로 저장한다.

단축키작업
Ctrl + Enter현재 셀 코드 실행
Shift + Enter현재 셀 코드를 실행하고 다음 셀로 이동
Alt + Enter현재 셀 코드 실행하고 다음 셀 삽입 및 선택
Y코드 셀로 변경
M마크다운 셀로 변경
A위에 새로운 셀 생성
B아래에 새로운 셀 생성
X선택된 셀 잘라내기
C선택된 셀 복사
V복사한 셀 아래에 새로운 셀 붙여넣기
Z실행 취소
D + D선택된 셀 삭제
Esc편집 모드에서 명령 모드로 전환
Enter명령 모드에서 편집 모드로 전환
Tab자동 완성
I + I커널 중지
0 + 0커널 재시작

conda

conda --version
# 현재 Anaconda 버전 확인

conda info
# 현재 Anaconda 버전, 가상환경 정보 등 표시

conda --help
# Anaconda 명령어 도움말

conda env list
# 현재 존재하는 가상환경 리스트

conda create -n [가상환경이름]
# [가상환경이름] 이름의 새로운 가상환경 생성
conda create -n [가상환경이름] python=[3.xx / 2.xx]
# [가상환경이름] 이름, 지정한 버전의 python을 갖는 가상환경 생성
conda create --clone [복제가상환경] -n [새가상환경]
# [복제가상환경] 가상환경을 복제하여 [새가상환경] 가상환경 생성

conda activate [가상환경이름]
# [가상환경이름] 가상환경 활성화
conda deactivate [가상환경이름]
# [가상환경이름] 가상환경 비활성화

conda list
# 현재 가상환경 설치된 패키지 리스트 조회

conda install [패키지이름]
# [패키지이름] 패키지 설치
conda install -n [가상환경이름] [패키지이름]=[버전]
# [가상환경이름] 가상환경에 [패키지이름] 패키지 지정 버전 [버전]을 설치

conda update conda
# Anaconda 업데이트
conda update [패키지이름]
# [패키지이름] 패키지 업데이트
conda update --all
# 현재 환경의 모든 패키지를 업데이트

conda search [패키지이름]
# 현재 환경의 설치된 패키지 중 [패키지이름] 조회

conda remove [패키지이름]
# 현재 환경의 설치된 패키지 중 [패키지이름] 삭제

conda clean --all
# 현재 환경 캐시 삭제

Anaconda 기본 라이브러리

Numpy

NumPy는 행렬이나 일반적으로 대규모 다차원 배열을 쉽게 처리할 수 있도록 지원하는 파이썬 라이브러리이다.

import numpy as np

# 리스트나 튜플 등을 Numpy 다차원 배열로 변환
a = np.array([1, 2, 3])
print(a)
# [1 2 3]
b = [[1, 2, 3, 4], [5, 6, 7, 8]]
arrayB = np.array(b)
print(arrayB)
# [[1 2 3 4]
#  [5 6 7 8]]

# 배열의 shape 확인
a.shpae
# (3, )
# 배열의 데이터 타입 확인
a.dtype
# dtype('int32')

# 배열의 shape 변경
arrayB2=arrayB.reshape(4,2)
print(arrayB2)
# [[1 2]
#  [3 4]
#  [5 6]
#  [7 8]]

# 입력한 shape의 배열을 생성하고 모든 원소를 0으로 초기화 
z = np.zeros((2, 3))
print(z)
# [[0. 0. 0.]
#  [0. 0. 0.]]

# 입력한 shape의 배열을 생성하고 모든 원소를 1로 초기화 
o = np.ones((2, 3))
print(o)
# [[1. 1. 1.]
#  [1. 1. 1.]]

# 지정한 범위의 값을 가지는 배열을 생성
rangeA = np.arange(5)
print(rangeA)
# [0 1 2 3 4]
rangeB = np.arange(1, 10, 2)
print(rangeB)
# [1 3 5 7 9]

# 배열의 모든 요소의 합
print(np.sum(a))
# 6
# 배열의 모든 요소의 평균
print(np.mean(arrayB))
# 4.5

# 0부터 1사이의 균일 분포 따른 난수 생성
randA = np.random.rand(3)
print(randA)
# [0.93031478 0.20754916 0.72119018]

# 지정한 범위 내에서 균등 간격의 수열을 생성
linspA = np.linspace(0, 1, 5)
print(linspA)
# [0.   0.25 0.5  0.75 1.  ]

# 두 배열의 내적 계산
c = np.array([[1, 2], [3, 4]])
d = np.array([[5, 6], [7, 8]])
print(np.dot(c, d))
# [[19 22]
#  [43 50]]

# 전치 행렬 반환
arr = np.array([[1, 2], [3, 4], [5, 6]])
print(arr)
transposed_arr = np.transpose(arr)
print(transposed_arr)
# [[1 2]
#  [3 4]
#  [5 6]]
# ===
# [[1 3 5]
#  [2 4 6]]

# 주어진 배열을 정렬한 배열을 반환
arrRand=np.array([[3,2,6],[1,5,4]])
arrRand.sort()
print(arrRand)
# [[2 3 6]
#  [1 4 5]]
# 열에 따라 정렬
arrRand.sort(0)
print(arrRand)
# [[1 2 4]
#  [3 5 6]]

Pandas

Pandas는 데이터 처리를 위한 파이썬 라이브러리이다. DataFrame 자료형을 사용할 수 있도록 하며 이에 대한 데이터 구조 변경 및 분석 작업을 가능하도록 한다.

import pandas as pd

# CSV 파일을 읽어와서 DataFrame 객체로 반환
df = pd.read_csv('data.csv')
# 첫 n개 행을 반환. 기본값은 5
print(df.head())
# DataFrame의 기술 통계 정보를 반환
print(df.describe())
# DataFrame을 지정된 열을 기준으로 정렬
sorted_df = df.sort_values(by='age')
print(sorted_df)
# DataFrame에서 지정된 행이나 열을 제거
new_df = df.drop('id', axis=1) # 'id' 열을 제거
print(new_df)
# DataFrame을 지정된 열을 기준으로 그룹화
grouped_df = df.groupby('gender')
print(grouped_df.mean()) # 성별에 따른 평균을 계산

df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [7, 8, 9]}, index=['x', 'y', 'z'])
# 라벨을 사용하여 데이터 선택
print(df.loc['x', 'a'])
# 1
print(df.loc[['x', 'y'], 'b'])
# x    4
# y    5
# 정수 인덱스를 사용하여 행과 열을 선택
print(df.iloc[0, 1])
# 4
print(df.iloc[:2, 1])
# x    4
# y    5

References

[Anaconda+python] 꼭 알아야할 conda 명령어 정리
[Python] Numpy 배열(메서드, 함수)

profile
안녕하세요

0개의 댓글