벡터 전치(Vector Transposition)란 무엇인가?
벡터 전치(vector transposition)는 벡터의 행과 열을 교환하는 연산이다. 특정 벡터 $\mathbf{v}$ 가 있다고 했을 때 이 벡터에 대한 전치 연산은 $\mathbf{v}^T$ 로 표현되며, 행 벡터를 열 벡터로 바꿀 때 자주 사용된다.
행 벡터 (Row Vector): $\mathbf{v} = \begin{bmatrix} v_1 & v_2 & v_3 & \cdots & v_n \end{bmatrix}$
열 벡터 (Column Vector): $\mathbf{v}^T = \begin{bmatrix} v_1 \\ v_2 \\ v_3 \\ \vdots \\ v_n \end{bmatrix}$
벡터 전치가 일어나면, 행과 열이 교환되기 때문에 벡터의 모양도 바뀐다. 예를 들어 (3,2) 형태의 벡터가 있다고 하면, 전치가 일어났을 때 모양은 (2,3)이 된다.
Numpy를 사용한 벡터 전치
Numpy를 사용해 벡터 전치 연산을 하려면 일단 2차원 배열을 만들어야 한다. 따라서 np.array([1, 2, 3]) 을 쓰는게 아니라, np.array([[1, 2, 3]]) 을 써서 (3,1) 모양으로 만들어야 한다. 그런 후 T 함수를 호출하면 전치(Transpose) 연산이 된다.
import numpy as np
vector = np.array([[1, 2, 3]]) # 행 벡터
transposed_vector = vector.T # 열 벡터
print("Vector:", vector)
print("Transposed Vector:\n", transposed_vector)
위 코드를 실행하면 다음과 같은 결과가 나온다.
TensorFlow를 활용한 벡터 전치
TensorFlow에서는 2차원 텐서를 만든 후 transpose 함수를 호출하면 전치를 할 수 있다.
import tensorflow as tf
# 2차원 텐서를 만든 후 전치
vector_2d = tf.Variable([[1, 2, 3]]) # 행 벡터
transposed_vector = tf.transpose(vector_2d) # 열 벡터
print("Vector:\n", vector_2d.numpy())
print("Transposed Vector:\n", transposed_vector.numpy())
이제 코드를 실행하면 다음과 같은 결과가 나온다.
Pytorch를 활용한 벡터 전치
Pytorch도 2차원 텐서를 만든 후 t() 함수를 호출하면 전치를 할 수 있다.
import torch
# 2차원 텐서 만든 후 전치
vector_2d = torch.tensor([[1, 2, 3]]) # 행 벡터
transposed_vector = vector_2d.t() # 열 벡터
print("2D Row Vector:\n", vector_2d)
print("Transposed Vector:\n", transposed_vector)
코드를 실행하면 다음과 같은 결과가 나온다.