728x90
반응형
broadcasting(브로드캐스팅) 기능: 서로 다른 크기의 행렬의 연산 시 작은 쪽 행렬이 큰 쪽 행렬에 맞게 반복 연산되는 기능
일반적으로 R은 브로드캐스팅 기능을 지원하지 않으며 파이썬에서는 가능하다.
예)
아래와 같은 matrix가 있다.
m1-m2를 하게 되면 "배열의 크기가 올바르지 않습니다." 라는 오류가 발생한다.
그러나 m1 - 1:3 을 하게 되면, 즉 행렬에 벡터를 연산하게 되면 컬럼 방향으로 반복되어 연산된다.
이는 R은 컬럼 우선 순위이기 때문이다.
따라서 R은 벡터의 브로드캐스팅은 되지만 matrix 대 matrix는 계산이 되지 않고, matrix 대 벡터인 경우는 컬럼 방향으로 브로드캐스팅이 된다.
이에 대한 두 가지 해결 방안이 있다.
해결 1) 작은 행렬을 큰 행렬 사이즈에 맞게 변경하여 연산(실제 R 공식문서 솔루션)
해결 2) apply를 사용하여 행 별 연산 반복
Line 16의 결과는 R이 열 우선순위여서 행렬이 바뀐 채로 출력이 된다.
따라서 t함수를 사용하여 Line 17처럼 행렬전치를 하면 결과가 출력된다.
728x90
반응형
'배우기 > 기록의 중요성' 카테고리의 다른 글
[Python] 파이썬(아나콘다) 설치 방법 (os: windows) (0) | 2024.01.09 |
---|---|
[Python] 메뉴얼과 함수 소스코드 확인 (0) | 2024.01.05 |
예측모델링 이해한대로 작성하기(빅데이터 분석기사 시험장에서는?) (0) | 2023.12.06 |
R에서의 Oracle DB Connect 방법 (0) | 2023.12.03 |
DBeaver로 oracle dbms 접속하기 (0) | 2023.12.02 |