본문 바로가기
파이썬

파이썬 numpy 벡터 수학

by º기록 2021. 2. 10.
반응형


지금까지 이것을 가지고 있습니다. 두 벡터 만들기

import numpy as np

loc = np.array([100., 100.])
vel = np.array([30., 10])

loc += vel

# reseting speed to a default value, maintaining direction
vel.normalize()
vel *= 200

loc += vel

 

해결 방법

 


주석에서 언급했듯이 벡터의 mutiplication을 위해 dot () 함수 또는 메서드를 사용해야하는 것이 가장 큰 함정입니다. 그러나 다시 말하지만, numpy 배열은 일관 적 입니다. 모든 작업은 요소별로 이루어집니다. 따라서 배열을 더하거나 빼고 스칼라를 사용한 곱셈은 모두 벡터의 예상대로 작동합니다.


수정 : 댓글 관련 :

예. numpy 전체는 배열을 기반으로합니다.

예. linalg.norm (v) 는 벡터의 길이를 얻는 좋은 방법입니다. 그러나 당신이 얻는 것은 규범에 대한 가능한 두 번째 주장에 달려 있습니다! 문서를 읽으십시오.

벡터를 정규화하려면 (2)에서 계산 한 길이로 나누면됩니다. 스칼라로 배열을 나누는 것도 요소별로 이루어집니다.

ipython의 예 :

In [1]: import math

In [2]: import numpy as np

In [3]: a = np.array([4,2,7])

In [4]: np.linalg.norm(a)
Out[4]: 8.3066238629180749

In [5]: math.sqrt(sum([n**2 for n in a]))
Out[5]: 8.306623862918075

In [6]: b = a/np.linalg.norm(a)

In [7]: np.linalg.norm(b)
Out[7]: 1.0

In [5] 는 길이를 계산하는 다른 방법입니다. [6]에서 는 벡터 정규화를 보여줍니다.

 

참조 페이지 https://stackoverflow.com/questions/12049154

 

 

반응형

댓글