Anaconda는 Python/R에 대해 데이터 사이언스 및 머신 러닝에 적합한 작업을 할 수 있도록 패키지 의존성 관리 및 배포를 도와주는 오픈 소스 패키지 매니저이다. 설치하면 기본적으로 Numpy, Pandas, matplotplib 등의 패키지를 제공한다.
conda --version
conda
를 앞에 붙여 명령어를 사용할 수 있다.
Anaconda를 사용함으로써 얻을 수 있는 또 다른 장점으로는 가상 환경의 쉬운 생성 및 관리가 있다. Anaconda에서 기본적으로 패키지를 관리해주고 패키지들간의 의존성을 관리해주긴 하나, 여러 라이브러리들을 사용하다 보면 충돌이 발생할 수 있다. 가상환경을 생성하면 독립적인 환경을 구축할 수 있으며 프로젝트에 필요한 모든 라이브러리와 의존성을 포함하는 고립된 환경에서 작업함으로써 표준화된 개발 환경을 유지할 수 있다.
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 --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
# 현재 환경 캐시 삭제
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는 데이터 처리를 위한 파이썬 라이브러리이다. 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
[Anaconda+python] 꼭 알아야할 conda 명령어 정리
[Python] Numpy 배열(메서드, 함수)