zenn.skin 무료버전 배포중!
자세히보기

행렬곱 3

DataScience
[Numpy] 배열과 행렬

Numpy에서 다차원 배열을 '배열'과 '행렬'을 이용해 나타낸다. 이 때 배열과 행렬은 일반적으로 사용하는 '배열'의 형태이다. 둘의 차이는 행렬곱 연산에 사용되는 연산자의 차이뿐이다. import numpy as np A = np.array([[1,2], [3,4]]) #배열 B = np.matrix([[1,2], [3,4]]) #행렬 위와 같이 정의했을 때 각각의 자료형은 다음과 같다 배열은 ndarray 객체이고, 행렬은 matrix 객체이다 전에는 둘의 행렬곱 연산에 차이가 있었다 ndarray는 dot 연산을 이용해 나타냈고, matrix는 * 연산을 이용해 행렬곱을 나타냈다 지금은 둘을 혼용해서 사용가능하다 배열과 행렬을 곱했을 때는 matrix 객체를 반환한다 @연산자를 사용해 행렬곱이 가..

Math/Linear Algebra
numpy - dot, 행렬의 곱셈

이전에 c++를 사용해 행렬곱을 구현한 적이 있었다. 파이썬에서는 numpy 라이브러리를 이용하면 간단하게 행렬곱을 구할 수 있다. - 다음과 같이 A와 B가 주어질 때, 행렬곱의 결과는 다음과 같다 1. numpy.matmul import numpy as np A=[[2,4,-1],[-1,3,3],[4,-2,1],[-3,0,2]] B=[[4,-2],[-2,1],[3,-1]] result=np.matmul(A,B) print(result) matmul 함수에 행렬 A와 B를 넣으면 행렬곱을 구할 수 있다. 하지만 행렬에 스칼라곱을 하면 에러가 발생한다. import numpy as np A=[[2,4,-1],[-1,3,3],[4,-2,1],[-3,0,2]] B=3 result=np.matmul(A,B) ..

Math/Linear Algebra
행렬의 곱셈

행렬의 곱셈 방법을 알아보고 이를 이용해 간단한 프로그램을 만들어보자:) 1. 행렬의 곱셈 두 행렬을 2x2 배열로 나타내고 index를 이용해 표현하면 다음과 같다. 새로운 행렬C의 행과 열의 index를 보면 C의 행index는 A의 행index값과 같고 C의 열index는 B의 열index와 같음을 알 수 있다. 2x3행렬 A와 3x3행렬인 B를 곱할 때, A의 열과 B의 행만큼 더해진다. 이를 이용하면 두 행렬을 곱할 때 새로운 행렬의 원소가 다음과 같음을 알 수 있다. 2. 프로그래밍 -두 행렬의 행과 열을 입력받아 동적배열을 만든 후, 두 행렬을 곱한 행렬을 출력해보자. 변수를 만들고 두 행렬 A, B의 행과 열을 입력받는다 각 행렬을 행과 열 크기에 맞게 동적으로 할당받고, 새로운 행렬 C도..