파이썬 NumPy 배열 연산 완전정복: 브로드캐스팅, 사칙연산, 행렬 곱까지!
파이썬 NumPy 배열 연산, 제대로 알고 계신가요? 이 글 하나로 배열의 사칙연산, 브로드캐스팅, 행렬 곱, 다양한 수학 함수와 실전 활용 팁까지 완벽하게 정리해드립니다. NumPy는 데이터 분석, 인공지능, 과학 계산 등에서 빠르고 효율적인 수치 연산을 가능하게 하는 핵심 라이브러리입니다.
많은 분들이 "배열끼리 연산은 어떻게 하지?", "브로드캐스팅이 뭔가요?", "행렬 곱과 원소별 곱의 차이는?" 등 다양한 고민을 하시죠. 이 글에서 모든 궁금증을 해결하세요!
📋 목차
- NumPy 배열 연산의 기본 원리
- 사칙연산과 벡터화 연산
- 브로드캐스팅(Broadcasting) 이해하기
- 행렬 곱과 내적(dot, matmul)
- 수학 함수와 조건 연산
- 실전 활용 꿀팁과 주의사항
🔍NumPy 배열 연산의 기본 원리
NumPy 배열(ndarray)은 동일한 데이터 타입의 다차원 배열로, 반복문 없이도 배열 전체에 연산을 적용할 수 있습니다. 벡터화 연산 덕분에 파이썬 리스트보다 훨씬 빠른 속도를 자랑합니다.
import numpy as np a = np.array([1, 2,[3]) b = np.array([4,[5][6]) print(a + b) # [5 7 9]
한줄 요약: NumPy는 반복문 없이 배열 전체 연산 가능!
📝사칙연산과 벡터화 연산
NumPy 배열끼리의 연산은 각 요소끼리(element-wise) 연산이 기본입니다. 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/) 모두 배열의 같은 위치에 있는 값끼리 계산됩니다.
연산 | 연산자/함수 | 예시 | 결과 |
---|---|---|---|
덧셈 | +, np.add() | a + b | [5 7 9] |
뺄셈 | -, np.subtract() | a - b | [-3 -3 -3] |
곱셈(원소별) | *, np.multiply() | a * b | [ 4 10 18] |
나눗셈 | /, np.divide() | a / b | [0.25 0.4 0.5] |
스칼라(숫자)와 배열 연산도 자동으로 각 요소에 적용됩니다. a * 2 → [2 4 6]
한줄 요약: 사칙연산은 각 요소별로 빠르게 처리!
⚡브로드캐스팅(Broadcasting) 이해하기
NumPy의 브로드캐스팅은 서로 다른 모양(shape)의 배열도 연산이 가능하도록 자동 확장해주는 기능입니다. 1차원 배열과 2차원 배열, 배열과 스칼라 연산도 문제없이 수행됩니다.
arr1 = np.array([[1,[2][3], [4, 5,[6]]) arr2 = np.array([10, 20,print(arr1 + arr2) # 출력: # [[11 22 33] # [14 25 36]]
브로드캐스팅 규칙: 차원이 맞지 않으면 1인 차원을 자동으로 확장합니다. 단, 불가능한 경우 ValueError가 발생합니다.
한줄 요약: 브로드캐스팅으로 다양한 차원의 연산 가능!
🎯행렬 곱과 내적(dot, matmul)
원소별 곱셈(*)과 행렬 곱셈(dot, matmul, @)은 다릅니다. 행렬 곱은 np.dot(), np.matmul(), @ 연산자로 수행합니다.
import numpy as np A = np.array([[1,[2], [3][4]]) B = np.array([[5,[6], [9][10]]) print(np.dot(A, B)) # 출력: [[19 22] # [43 50]]
print(A @ B) # 동일 결과
1차원 배열끼리는 내적(스칼라), 2차원 배열은 행렬 곱을 계산합니다.
한줄 요약: dot, matmul, @는 행렬 곱, *는 원소별 곱!
💡수학 함수와 조건 연산
NumPy는 sum, mean, std, min, max, argmin, argmax 등 다양한 수학 함수를 제공합니다. 배열 전체, 특정 축(axis)별로 연산이 가능합니다.
arr = np.array([[1,[2][3], [4, 5,[6]]) print(arr.sum()) # 전체 합: 21 print(arr.mean(axis=0)) # 열 평균: [2.5 3.5 4.5] print(arr.max(axis=1)) # 행별 최대값: [3 6]
조건 연산도 간단하게 처리할 수 있습니다.
arr = np.array([1,[2][3][4][5]) print(arr[arr % 2 == 0]) # 짝수만 추출: [2 4]
한줄 요약: 수학 함수와 조건 연산으로 데이터 분석 UP!
⭐실전 활용 꿀팁과 주의사항
- 배열 shape이 다르면 브로드캐스팅 규칙을 확인하세요.
- dot, matmul, @는 행렬 곱, *는 원소별 곱입니다.
- sum, mean, std 등은 axis 인자로 축 지정 가능
- 조건 연산, 불리언 인덱싱으로 데이터 필터링이 쉽습니다.
- 속도와 메모리 효율이 뛰어나 대용량 데이터에 최적
- 사칙연산, 브로드캐스팅, 행렬 곱, 수학 함수 등 연산 지원
- 벡터화 연산으로 반복문 없이 빠른 처리
- dot, matmul, @는 행렬 곱, *는 원소별 곱에 주의!
한줄 요약: NumPy 배열 연산은 데이터 분석의 필수 스킬!
- NumPy 배열 연산은 반복문 없이 빠르고 효율적
- 브로드캐스팅으로 다양한 차원의 연산 지원
- dot, matmul, @는 행렬 곱, *는 원소별 곱에 주의
도움이 되셨다면 공감♥ 눌러주세요!
파이썬 NumPy 배열 연산, 이제 완벽하게 이해하셨나요? 다음 글에서는 고급 인덱싱, 마스킹, 실전 데이터 분석 예제 등 더 깊이 있는 내용을 다룰 예정입니다. 궁금한 점이나 추가 질문은 댓글로 남겨주세요! 구독과 알림 설정도 잊지 마세요.
#NumPy #배열연산 #브로드캐스팅 #행렬곱 #dot #matmul #데이터분석 #파이썬기초 #벡터화 #파이썬2025
'IT silo' 카테고리의 다른 글
파이썬 Matplotlib 그래프 그리기 완벽 가이드: 실전 예제와 커스터마이징 꿀팁! (0) | 2025.07.01 |
---|---|
파이썬 Pandas 데이터 분석 완전정복: 실전 활용법과 최신 트렌드 한눈에! (1) | 2025.07.01 |
파이썬 map, filter, reduce 함수 완전정리: 실전 예제와 활용 꿀팁! (0) | 2025.06.30 |
파이썬 람다 함수 활용 예제 완전정리: map, filter, 정렬까지 한눈에! (0) | 2025.06.30 |
파이썬 정규표현식 re 모듈 완전정복: 실전 활용과 꿀팁 총정리! (1) | 2025.06.30 |