구현 동기 : 파이썬 list 자료구조는 * 연산자를 사용하면 리스트 내의 원소를 int 번 반복하는 것에 그치고, 벡터에 대한 스칼라 배 연산이 불가능하다. 넘파이를 사용해서 쉽게 계산할 수도 있지만, 함수 구조화 연습 차원에서 한번 직접 만들어보았다.
내가 원하는 연산
일때,
아주 간단한 연산인 를 구현하고자 하는 것
def scalar_multiple(x, y):
assert type(x) == list
assert type(y) == int
for i in range(0, len(x)):
x[i] = x[i]*y
if x[i] == x[i]*y:
break
# 스칼라배하는 연산이 i번만큼 실행되어서 1번만 실행 및 출력하려고 반복문 깬 것.
print(x)
e1 = [1,0,0] # 표준단위벡터 e1
k = 2 # scalar in R^1
scalar_multiple(e1, k)
import numpy as np
vec = np.array([1,0,0])
k_0 = 2
np.multiply(vec,k_0)
ㄷㄷ..
고차원 벡터, 행렬연산에서 numpy가 얼마나 강력할지 아직 감도 안온다.