Study/PHM

시작 - 맥에서 가상환경 구축, VScode로 jupyter notebook 생성하기

문세희 2023. 7. 9. 00:14

학교의 PHM 랩실에서 인턴생활을 시작하게 되었다. 이전까지는 구글 드라이브에 데이터셋을 업로드해놓고, 코랩을 이용하여 데이터 분석을 진행하였다. 하지만 랩실에서 다루는 데이터는 용량이 매우 크기 때문에, 코랩으로 분석을 진행하기 어려운 부분이 있었다. 그래서 랩실에 있는 고사양 PC와 VScode를 활용하여 분석을 진행한다고 한다.

랩실에서의 분석을 시작하기 앞서 내 개인용 랩탑인 맥북에 동일한 환경을 만들어 주기로 했다.

진행하면서 또 구글을 뒤적여 가면서 시간을 많이 허비하여, 기록용으로 블로그에 남겨두기로 결정했다.


1. Anaconda 설치

Anaconda 홈페이지에 들어가서 MacOS에서 Installer을 골라 설치하면 된다.

 

Free Download | Anaconda

Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com

2. 가상환경 구축

Anaconda 설치가 끝났으면, conda를 이용하여 가상환경을 구축해보자.

conda create -n [가상환경 이름]
conda create -n [가상환경 이름] python=[지정하고 싶은 파이썬 버전]

첫 번째 코드를 터미널에 입력하면 최신 버전의 파이썬을 적용한 가상환경이 생성된다.

두 번째 코드는 지정하고 싶은 파이썬 버전으로 가상환경을 만들어 줄 수 있다.

 

중간에 [y / n] ? 이 뜨면 y를 입력하고 Enter을 눌러주면 된다.

 

3. 가상환경 활성화 / 비활성화

터미널에 명령어를 입력하여 가상환경을 활성화 및 비활성화를 진행할 수 있다.

conda activate [가상환경 이름]
conda deactivate

첫 번째 코드로 활성화

두 번째 코드로 비활성화 할 수 있다.

터미널에서 가상환경을 활성화한 상태로 pip install을 진행하면 해당 가상환경에 원하는 프레임워크 등을 설치할 수 있다.

 

4. VScode에서 Python Extension 및 Jupyter 설치

왼쪽 사이드바에서 5번째 아이콘을 누르고, 검색창에 Python Extension Pack을 설치해준다.

Jupyter은 데이터분석을 하기 위해 필요한 노트북 형식의 파일을 다룰 수 있게 해 준다.

마찬가지로 왼쪽 사이드바 5번째 아이콘을 클릭한 뒤 검색창에 Jupyter을 검색하고 다운받아준다.

5. VScode에서 Jupyter Notebook 생성 및 새로 만들어준 가상환경 연동

VScode를 실행한 후 맥북 기준으로 Command + Shift + P 를 누르면 위와 같이 상단에 검색창같은 게 생긴다.

여기서 주피터 노트북을 실행하고 싶으면 'Jupyter: Jupyter 서버를 시작하려면 인터프리터를 선택하세요'를 클릭해준다.

그 후 이전에 만들었던 가상환경으로 세팅해줄 수가 있게 된다.

 

이 방법이 동작하지 않으면

Command + Shift + P 누른 후 

'Create: New Jupyter Notebook' 클릭해준다.

그 후 

우측 상단에 'Select Kernel'을 클릭하면 위와 같이 환경을 선택하는 창이 나온다. 

이 방법은 Jupyter Notebook을 먼저 만든 후에 가상환경을 세팅해주는 방식이다.

 

6. File Load

기존에는 csv파일이나 excel 파일로 데이터가 주어져서 

import pandas as pd
df = pd.read_csv('파일경로')

이런 식으로 파일을 로드했었는데, 이번에는 mat형식으로 파일이 주어졌다.

scipy라는 패키지를 이용하여 mat 형식 파일을 로드한다.

데이터프레임으로 불러오는 과정은 사실 csv나 excel과는 달리 조금 복잡한 부분이 있길래 chatgpt한테 부탁해서 코드를 작성했다.

# mat 파일 경로
mat_file = "파일경로.mat"

# mat 파일 불러오기
mat_data = scipy.io.loadmat(mat_file)

# mat 파일의 변수명 확인
variables = mat_data.keys()

# 데이터프레임으로 변환
data = {}
for var in variables:
    if not var.startswith("__"):  # __header__, __version__, __globals__ 제외
        if mat_data[var].ndim > 2:
            # 다차원 배열의 경우 2차원으로 변환
            reshaped_data = np.reshape(mat_data[var], (mat_data[var].shape[0], -1))
            # 각 열에 대해 새로운 변수명 생성
            for i in range(reshaped_data.shape[1]):
                column_name = var + "_" + str(i+1)
                data[column_name] = reshaped_data[:, i]
        else:
            data[var] = mat_data[var].flatten()

df = pd.DataFrame(data)

데이터프레임으로 불러오는데 성공했다 ! (데이터 양이 ㅎㄷㄷ)