Life Logs && *Timeline

  • Python으로 행렬 만들기 및 연산 수행

    1. 벡터와 행렬의 개념

    벡터(Vector)와 행렬(Matrix)은 수학적 연산에서 중요한 개념으로, 데이터 분석과 머신러닝에서도 널리 사용됩니다. Python의 numpy 패키지를 활용하면 벡터와 행렬을 쉽게 다룰 수 있습니다.

    2. 벡터 및 행렬 생성

    (1) 벡터 생성

    import numpy as np
    
    x = np.array([10, 11, 12])  # 1차원 배열로 벡터 표현
    y = np.array([0, 1, 2])
    print("Vector x:", x)
    print("Vector y:", y)
    

    (2) 행렬 생성

    A = np.array([[5, 6], [7, 8]])
    B = np.array([[10, 20], [30, 40]])
    print("Matrix A:\n", A)
    print("Matrix B:\n", B)
    

    3. 벡터 및 행렬 연산

    (1) 벡터 덧셈 및 뺄셈

    print("x + y:", x + y)
    print("x - y:", x - y)
    

    (2) 행렬 덧셈 및 뺄셈

    C = A + B
    D = A - B
    print("Matrix Addition (A + B):\n", C)
    print("Matrix Subtraction (A - B):\n", D)
    

    (3) 스칼라 곱셈

    scalar = 2
    print("Scalar Multiplication of x:", scalar * x)
    print("Scalar Multiplication of A:\n", scalar * A)
    

    4. 행렬의 곱셈

    (1) 행렬과 벡터의 곱셈

    v = np.array([[1], [2]])
    result = A @ v  # 또는 np.dot(A, v)
    print("Matrix-Vector Multiplication:\n", result)
    

    (2) 행렬 간 곱셈

    E = np.array([[1, 2, 3], [4, 5, 6]])
    F = np.array([[7, 8], [9, 10], [11, 12]])
    G = E @ F  # 또는 np.dot(E, F)
    print("Matrix Multiplication (E x F):\n", G)
    

    5. 브로드캐스팅 (Broadcasting)

    Numpy에서는 크기가 다른 배열 간 연산을 수행할 수 있도록 자동 확장(브로드캐스팅)을 지원합니다.

    x = np.array([1, 2, 3])
    scalar = 10
    print("Broadcasting Example:", x - scalar)
    

    6. 벡터의 내적

    x = np.array([1, 2, 3])
    y = np.array([4, 5, 6])
    dot_product = np.dot(x, y)
    print("Dot Product of x and y:", dot_product)
    

    7. 행렬의 전치 연산

    A = np.array([[1, 2, 3], [4, 5, 6]])
    A_T = A.T
    print("Transpose of A:\n", A_T)
    

    결론

    Python의 numpy 패키지를 활용하면 벡터와 행렬의 다양한 연산을 쉽게 수행할 수 있습니다. 이를 통해 데이터 분석과 머신러닝에 필수적인 연산을 효율적으로 처리할 수 있습니다.