Python 학습: 표준 라이브러리와 외부 패키지
Python은 풍부한 표준 라이브러리와 외부 패키지를 통해 다양한 기능을 쉽게 구현할 수 있습니다. 이번 글에서는 표준 라이브러리와 외부 패키지 설치 및 사용에 대해 알아보겠습니다.
1. 표준 라이브러리: itertools, collections, functools, etc.
Python의 표준 라이브러리는 많은 유용한 모듈을 포함하고 있습니다. 그중에서도 itertools, collections, functools는 매우 유용하게 사용됩니다.
- itertools : itertools는 반복자(iterator)를 생성하는 함수들을 제공합니다. 이를 통해 효율적인 반복 작업을 수행할 수 있습니다.
itertools 예제
# count: 무한히 증가하는 정수 생성
for i in itertools.count(10):
if i > 15:
break
print(i) # 10, 11, 12, 13, 14, 15 출력
# cycle: 반복 가능한 객체를 무한히 반복
count = 0
for item in itertools.cycle(['A', 'B', 'C']):
if count > 5:
break
print(item) # A, B, C, A, B, C 출력
count += 1
# combinations: 주어진 길이의 모든 조합 생성
items = ['a', 'b', 'c']
print(list(itertools.combinations(items, 2))) # [('a', 'b'), ('a', 'c'), ('b', 'c')]
- collections : collections 모듈은 컨테이너 데이터형을 확장한 다양한 자료구조를 제공합니다.
collections 예제
# Counter: 요소의 개수를 세는 딕셔너리
counter = Counter(['a', 'b', 'c', 'a', 'b', 'b'])
print(counter) # Counter({'b': 3, 'a': 2, 'c': 1})
# deque: 양쪽 끝에서 빠르게 추가 및 제거할 수 있는 리스트
dq = deque([1, 2, 3])
dq.appendleft(0)
dq.append(4)
print(dq) # deque([0, 1, 2, 3, 4])
# defaultdict: 기본값을 제공하는 딕셔너리
dd = defaultdict(int)
dd['a'] += 1
print(dd) # defaultdict(<class 'int'>, {'a': 1})
# namedtuple: 이름으로 접근 가능한 튜플
Point = namedtuple('Point', ['x', 'y'])
p = Point(10, 20)
print(p.x, p.y) # 10 20
- functools : functools 모듈은 고차 함수(higher-order functions)를 다루기 위한 도구를 제공합니다.
functools 예제
# reduce: 누적 함수 적용
numbers = [1, 2, 3, 4, 5]
result = reduce(lambda x, y: x + y, numbers)
print(result) # 15
# lru_cache: 캐싱을 통한 함수 성능 향상
@lru_cache(maxsize=32)
def fibonacci(n):
if n < 2:
return n
return fibonacci(n - 1) + fibonacci(n - 2)
print(fibonacci(10)) # 55
# partial: 함수의 인자 고정
def power(base, exponent):
return base ** exponent
square = partial(power, exponent=2)
print(square(5)) # 25
2. 외부 패키지 설치 및 사용: pip, venv, numpy, pandas, matplotlib 등
Python의 생태계는 외부 패키지로 더욱 확장됩니다. pip와 venv를 사용하여 패키지를 관리하고, numpy, pandas, matplotlib와 같은 외부 라이브러리를 사용하여 다양한 기능을 구현할 수 있습니다.
- pip : pip는 Python 패키지 설치를 위한 패키지 관리자입니다.
pip 사용 예제
pip install requests
# 패키지 목록 확인
pip list
# 패키지 제거
pip uninstall requests
- venv : venv는 가상 환경을 만들어 프로젝트별로 독립된 패키지 환경을 구성할 수 있습니다.
venv 사용 예제
python -m venv myenv
# 가상 환경 활성화 (Windows)
myenv\Scripts\activate
# 가상 환경 활성화 (macOS/Linux)
source myenv/bin/activate
# 가상 환경 비활성화
deactivate
- numpy : numpy는 강력한 수치 계산 라이브러리로, 배열 연산을 효율적으로 처리합니다.
numpy 사용 예제
# 배열 생성
arr = np.array([1, 2, 3, 4, 5])
print(arr)
# 배열 연산
print(arr + 5) # [ 6 7 8 9 10]
print(np.sum(arr)) # 15
# 다차원 배열
matrix = np.array([[1, 2], [3, 4]])
print(matrix)
- pandas : pandas는 데이터 조작 및 분석을 위한 라이브러리로, 데이터프레임(DataFrame)을 사용하여 데이터를 처리합니다.
pandas 사용 예제:
# 데이터프레임 생성
data = {
'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35]
}
df = pd.DataFrame(data)
print(df)
# 데이터 접근
print(df['name'])
print(df.iloc[0])
# 데이터 조작
df['age'] += 1
print(df)
- matplotlib : matplotlib는 데이터 시각화를 위한 라이브러리로, 다양한 형태의 그래프를 그릴 수 있습니다.
matplotlib 사용 예제
# 데이터 준비
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# 라인 그래프 그리기
plt.plot(x, y)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Line Graph')
plt.show()
# 막대 그래프 그리기
plt.bar(x, y)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Bar Chart')
plt.show()
이 글에서는 Python의 표준 라이브러리와 외부 패키지에 대해 알아보았습니다. itertools, collections, functools 등의 표준 라이브러리와 numpy, pandas, matplotlib 같은 외부 패키지를 활용하면 다양한 기능을 쉽게 구현할 수 있습니다. Happy Coding!
'프로그래밍 > Python' 카테고리의 다른 글
[Python] 11. Python의 "데이터베이스" (0) | 2024.06.18 |
---|---|
[Python] 10. Python의 "고급 주제" (0) | 2024.06.18 |
[Python] 8. Python의 "모듈과 패키지" (0) | 2024.06.18 |
[Python] 7. Python의 "객체 지향 프로그래밍 (OOP)" (0) | 2024.06.18 |
[Python] 6. Python의 "예외 처리" (0) | 2024.06.18 |