산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

파이썬 NumPy 행렬 연산: 전치, 덧셈, 곱셈, 슬라이싱 실전 가이드

파이썬 NumPy 행렬 연산: 전치, 덧셈, 곱셈, 슬라이싱 실전 가이드

행렬이란?

수학적 모델링, 과학 계산, 데이터 분석은 종종 2차원 데이터 효율적 조작에 의존합니다. 파이썬에서 행렬은 일반 리스트로 만들 수 있지만, 더 강력하게는 NumPy 라이브러리로 생성합니다. 이 가이드는 가장 일반적인 행렬 연산을 명확한 코드 예제와 모범 사례 팁으로 안내합니다.

중첩 리스트로 행렬 만들기

중첩 리스트는 행렬 만드는 가장 간단한 방법. 각 내부 리스트가 한 행:

# 3x3 행렬
M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
print(M1)

출력: [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]

데이터 읽기

행과 열 인덱스로 요소 접근. 각 행의 마지막 요소 출력:

for row in M1:
    print(row[-1])

출력: -6 / 4 / 21

행렬 덧셈

두 행렬 모양 같으면 원소별 덧셈 직관적:

M2 = [[3, 16, -6], [9, 7, -4], [-1, 3, 13]]
# 결과 행렬
M3 = [[M1[i][j] + M2[i][j] for j in range(len(M1[0]))] for i in range(len(M1))]
print(M3)

출력: [[11, 30, -12], [21, 14, 0], [-12, 6, 34]]

원소별 곱셈

마찬가지로 대응 원소 곱셈:

M3 = [[M1[i][j] * M2[i][j] for j in range(len(M1[0]))] for i in range(len(M1))]
print(M3)

출력: [[24, 224, 36], [108, 49, -16], [11, 9, 273]]

NumPy로 효율적 행렬 연산

NumPy는 전용 배열 타입과 풍부한 벡터화 연산 제공. pip install numpy로 설치 후 np로 임포트:

import numpy as np

행렬 생성

M1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]])
print(M1)

출력: [[ 5 -10 15] [ 3 -6 9] [ -4 8 12]]

기본 연산

예제: 행렬 내적

M1 = np.array([[3, 6], [5, -10]])
M2 = np.array([[9, -18], [11, 22]])
print(M1.dot(M2))

출력: [[ 93 78] [-65 -310]]

슬라이싱

array[row_start:row_end, col_start:col_end]로 행/열 슬라이싱:

M = np.array([[2, 4, 6, 8, 10],
              [3, 6, 9, -12, -15],
              [4, 8, 12, 16, -20],
              [5, -10, 15, -20, 25]])

print(M[1:3, 1:4])  # 행 1~2, 열 1~3
print(M[:, 3])      # 모든 행, 4번째 열
print(M[:1, :])     # 첫 행, 모든 열
print(M[:3, :2])    # 처음 3행, 처음 2열

출력: [[ 6 9 -12] [ 8 12 16]] / [ 8 -12 16 -20] / [[ 2 4 6 8 10]] / [[ 2 4] [ 3 6] [ 4 8]]

행과 열 접근

# 행
print(M[0])    # 첫 행
print(M[-1])   # 마지막 행
# 열
print(M[:, 0])   # 첫 열
print(M[:, -1])  # 마지막 열

핵심 요약

python

  1. Python 딕셔너리 마스터하기: 생성, 조작, 고급 기법
  2. C++ 배열 완전 정복: 선언, 초기화, 포인터 기법
  3. Python print() 함수 완벽 가이드: 예제와 고급 기법
  4. Python str.count() 마스터하기: 문자 및 부분문자열 개수 세기 예제
  5. Python format() 문자열 마스터하기: 명확한 예제로 완전 정복
  6. Python String.find() 메서드 마스터하기: 문법, 예제, 대안 비교
  7. 파이썬 람다 함수 마스터하기: 실용 예제 & 모범 사례
  8. 파이썬 abs() 함수: 숫자 & 복소수의 절댓값 구하기
  9. 파이썬 round() 함수 완전 정복: 실용 예제로 이해하기
  10. 파이썬 range() 함수 마스터하기: 기초부터 고급 활용까지