기본 콘텐츠로 건너뛰기

라벨이 행렬인 게시물 표시

[matplotlib]quiver()함수

[Linear Algebra] 파이썬으로 행렬 객체 만들기

행렬 객체 만들기 python에서 행렬 객체를 생성하기 위해서는 numpy, pandas 모듈을 사용합니다. numpy 모듈에서 array() 함수는 다른 행렬 객체를 생성하는 대부분 함수의 기반이 되는 함수입니다. import numpy as np from sympy import * x=np.array([1,2,3]); x array([1, 2, 3]) 위 객체 x는 3개의 요소로 구성된 벡터입니다. 즉 하나의 차원을 가집니다( 차원(dimension) 참조). 객체의 차원과 그에 따른 형태는 각각 .ndim, .shape 속성을 확인할 수 있습니다. x.ndim, x.shape (1, (3,)) 위 결과에 의하면 객체 x는 1차원으로 3개의 요소들로 구성됨을 나타냅니다. 같은 요소들로 구성된 다음 객체 x1은 행렬입니다. x1=np.array([[1],[2],[3]]); x1 array([[1], [2], [3]]) print(x1) [[1] [2] [3]] 파이썬의 함수 print() 는 결과의 자료형 등의 속성을 배제한 상태로 출력합니다. x1.ndim, x1.shape (2, (3, 1)) 객체 x1는 2차원 즉, 2개의 축으로 행과 열로 구성됩니다. 그러나 행 또는 열 중 하나가 1일 경우 실제적으로 1차원인 벡터입니다. 파이썬에서 벡터와 행렬을 구분한다는 것은 매우 중요합니다. 벡터, 행렬 연산의 경우 기본적으로 차원을 조정해야 하기 때문입니다. 예를 들어 행과 열이 바꾸는 것을 전치(transpose)라고 하며 객체.T 로 실행됩니다. 그러나 벡터일 경우는 실행되지 않습니다. x.T array([1, 2, 3]) x1.T array([1, 2, 3]) 벡터인 객체 x를 행렬로 변경하기 위해 numpy객체.reshape(행의 수, 열의 수) 메소드를 사용할 수 있습니다. 이 함수에서 행의수 또는 열의수에 -1을 지정하면 다른쪽에 지정된 수에 의해 자동으로 변환됩니다. 예를 ...

[linear algebra] 벡터와 행렬(vector & Matrix)

벡터와 행렬(vector & Matrix) 벡터(vector) 행렬(Matrix) 파이썬에서 벡터, 행렬 등은 numpy.array() 함수를 사용하여 생성합니다. 또한 각 객체는 차원(dimension) 을 갖습니다. 벡터(vector) A = (3,1), B = (2,3)는 두 개 축 위에 표시되는 좌표(점)로 나타낼 수 있습니다. 각 점은 어떤 기준에 대한 크기만을 가집니다. 예를 들어 원점 O(0,0)를 기준으로 A 또는 B의 거리는 식 1과 같이 계산할 수 있습니다. \begin{align}\Vert \overline{OA}\Vert &=\sqrt{(3-0)^2+(1-0)^2}=\sqrt{10}\\ \Vert \overline{OB}\Vert &=\sqrt{(2-0)^2+(3-0)^2}=\sqrt{13}\end{align} (식 1) 식 1의 $\overline{OA}$는 점 O와 점 A 사이의 거리를 계산한 것입니다. 이 거리를 점 O를 시작하여 A 까지의 거리로 표현한다면 이동 방향이 고려된 것입니다. 이와 같이 거리 즉, 이동 크기에 방향을 함께 고려한 량을 벡터(Vector) 라고 하고 식 2와 같이 화살표를 첨가하여 나타냅니다. 일반적으로 출발점이 원점(O)인 경우 출발점을 생략하며 벡터 표시인 화살표 없이 단순히 알파벳 소문자로 표시합니다. 벡터의 관점에서 보면 식 1은 벡터 a와 벡터 b의 길이(크기)를 계산한 것으로 놈(Norm) 이라고 합니다. 벡터는 행과 열을 구분할 수 없습니다. 일반적으로 식 2와 같이 한 행으로 표시하지만 많은 경우 세로로 정렬됨을 의미 합니다. 이러한 표시를 열벡터 라고 하지만 실제로는 행과 열로 구성된 행렬입니다. 또한 행렬(Matrix) 의 경우는 대문자 알파벳으로 나타내며 벡터, 행렬을 구성하는 각각의 수를 요소(element)라고 합니다. \begin{align}&\overrightarrow{oa}=\vec{a}=\begin{bmatr...

[numpy] 차원(dimension)

차원(dimension) 차원은 임의의 점들을 나타내기 위해 필요한 축의 수로 정의할 수 있습니다. 다음 그림은 3차원까지를 나타냅니다. 한 개의 점(scalar)을 나타내기 위해서는 축이 필요하지 않습니다. 즉, 점은 0차원으로 정의합니다. 두점을 이은 선(vector)의 경우 두 점들을 한개의 축위에 나타내는 것으로 1차원으로 각 점 간의 거리를 나타낼 수 있으며 한 방향을 나타낼 수 있습니다. 두개의 선을 연결한 면(matrix)을 나타내기 위해서는 2개의 기본 축이 필요하므로 2차원으로 면적을 나타낼 수 있으며 두 방향을 나타낼수 있습니다. 두개의 면을 연결한 공간의 경우 3개의 기본 축하므로 3차원이 됩니다. 즉, 부피와 3개의 방향을 나타낼 수 있습니다. 3차원 이상의 경우는 tensor라는 용어로 나타냅니다. numpy 패키지의 기본 자료형인 array(배열)의 기본단위는 벡터이며 리스트 형태인 하나의 대괄호로 나타냅니다. 다음 객체 x는 한개의 숫자를 가지지만 벡터이므로 방향을 가집니다. 즉, 0에서 시작하여 2까지 이어지는 선을 나타냅니다. import numpy as np import numpy.linalg as la import matplotlib.pyplot as plt plt.rcParams['font.family'] ='NanumGothic' plt.rcParams['axes.unicode_minus'] =False x=np.array([2]) x array([2]) 벡터 x는 다음 그림 중의 하나로 나타낼 수 있습니다. 즉, 한개의 좌표가 필요하므로 1차원 벡터입니다. 그림 1. fig, ax=plt.subplots(1, 2, figsize=(4,2)) plt.subplots_adjust(wspace=0.3) ax[0].plot([0, 2], [0, 0], lw=2) ax[1].plot([0,0], [0,2], lw=2) plt.show() ...