comnic's Dev&Life

[Python] 4. NumPy와 Pandas 본문

Python

[Python] 4. NumPy와 Pandas

comnic 2024. 1. 12. 17:34
반응형

4. NumPy와 Pandas

 

4.1 NumPy

NumPy는 Numerical Python의 약자로, 과학 계산을 위한 강력한 패키지로 널리 사용되고 있습니다. 주로 배열과 행렬 연산에 중점을 둔 다차원 배열을 제공하며, 수학적 함수들을 제공하여 효과적인 데이터 분석과 처리를 가능케 합니다. NumPy는 많은 데이터 과학 및 머신러닝 라이브러리의 기반이 되기도 합니다.

NumPy의 주요 특징:

  1. 다차원 배열(N-dimensional array): NumPy는 다차원 배열인 ndarray를 제공하며, 이는 동일한 데이터 타입의 원소들이 격자 형태로 있는 배열입니다.
  2. 브로드캐스팅(Broadcasting): 서로 다른 크기의 배열 간에도 산술 연산이 가능하도록 하는 기능으로, 코드를 간결하게 작성할 수 있게 합니다.
  3. 효율적인 연산: NumPy는 C로 구현되어 있어, 배열에 대한 연산이 효율적으로 이루어집니다. 벡터화된 연산을 통해 반복문을 사용하지 않고도 간결한 코드로 다양한 수학적 연산을 수행할 수 있습니다.
  4. 수학 및 통계 함수 제공: 다양한 수학 및 통계 함수를 제공하여 과학적 계산을 지원합니다.
  5. 인덱싱과 슬라이싱: NumPy 배열의 요소에 접근하고 조작하기 위한 강력한 인덱싱과 슬라이싱 기능을 제공합니다.

다음은 NumPy의 기본적인 사용 예제입니다.

# NumPy 라이브러리 임포트
import numpy as np

# 1차원 배열 생성
arr_1d = np.array([1, 2, 3, 4, 5])
print("1D Array:", arr_1d)

# 2차원 배열 생성
arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("2D Array:\n", arr_2d)

# 배열의 크기 확인
print("Shape of arr_2d:", arr_2d.shape)

# 배열의 차원 수 확인
print("Number of dimensions of arr_2d:", arr_2d.ndim)

# 배열의 데이터 타입 확인
print("Data type of arr_2d:", arr_2d.dtype)

# 행렬 곱셈
matrix_product = np.dot(arr_2d, arr_2d)
print("Matrix Product:\n", matrix_product)

# 브로드캐스팅
arr_broadcast = arr_2d * 2
print("Broadcasting Result:\n", arr_broadcast)

# 통계 함수
mean_value = np.mean(arr_2d)
print("Mean Value:", mean_value)

이 예제에서는 NumPy 배열의 생성, 크기 및 차원 확인, 행렬 곱셈, 브로드캐스팅, 통계 함수 등 다양한 기능을 사용하는 방법을 보여줍니다. NumPy를 활용하면 배열 기반의 과학적 계산이 훨씬 간편하고 효율적으로 수행됩니다.

 

4.2 Pandas

Pandas는 데이터 조작 및 분석을 위한 라이브러리로, 표 형식의 데이터를 다루는 데에 특히 유용합니다. 주로 데이터프레임(DataFrame)이라는 자료구조를 제공하며, 엑셀의 스프레드시트와 유사한 형태의 2차원 테이블로 데이터를 표현합니다. Pandas는 NumPy에 기반하며, 데이터 조작 및 처리를 더 편리하게 할 수 있도록 다양한 기능을 제공합니다.

Pandas의 주요 구성 요소:

  1. DataFrame: 엑셀 스프레드시트와 유사한 2차원 데이터 구조로, 행과 열로 이루어진 테이블을 제공합니다.
  2. Series: 1차원 배열과 유사한 자료구조로, 인덱스를 가지는 열 형태의 데이터를 표현합니다.
  3. Index: 데이터프레임이나 시리즈에서 각 행과 열에 대한 이름을 지정하는 데 사용됩니다.

다음은 Pandas의 기본적인 사용 예제입니다.

# Pandas 라이브러리 임포트
import pandas as pd

# 데이터프레임 생성
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'City': ['New York', 'San Francisco', 'Los Angeles']}

df = pd.DataFrame(data)
print("DataFrame:\n", df)

# 데이터프레임 정보 확인
print("\nInfo:")
print(df.info())

# 특정 열 선택
ages = df['Age']
print("\nSelected Column 'Age':\n", ages)

# 행 선택
row = df.loc[1]
print("\nSelected Row at index 1:\n", row)

# 새로운 열 추가
df['Salary'] = [50000, 60000, 70000]
print("\nDataFrame with New Column 'Salary':\n", df)

# 통계 정보 확인
print("\nStatistics:")
print(df.describe())

이 예제에서는 Pandas의 데이터프레임을 생성하고 다양한 조작을 수행하는 방법을 보여줍니다. 데이터프레임을 통해 데이터를 효율적으로 조작하고 분석할 수 있습니다. Pandas는 데이터 전처리, 탐색적 데이터 분석, 통계 분석 등 다양한 데이터 관련 작업에서 활용됩니다.

반응형

'Python' 카테고리의 다른 글

[Python] 3. 기본 문법  (0) 2024.01.12
[Python] 2. 개발환경 설정  (0) 2024.01.12
[Python] 1. Python 소개 및 장단점  (0) 2024.01.10
Comments