使用python计算向量投影

时间:2019-03-18 16:35:08

标签: python numpy

是否有更简单的命令来计算矢量投影? 我改为使用以下内容:

x = np.array([ 3, -4,  0])
y = np.array([10,  5, -6])
z=float(np.dot(x, y)
z1=float(np.dot(x, x)
z2=np.sqrt(z1)
z3=(z/z2**2)
x*z3

2 个答案:

答案 0 :(得分:1)

也许,也许,这就是您真正想要的:

np.dot(x, y) / np.linalg.norm(y)

这应该给出向量x在向量y上的投影-参见https://en.wikipedia.org/wiki/Vector_projection。另外,如果您要计算yx上的投影,请在上式的分母(y)中将x替换为norm

答案 1 :(得分:0)

ab 的投影定义为

enter image description here

所以要么

(np.dot(a, b) / np.dot(b, b)) * b

(np.dot(a, b) / np.linalg.norm(b)**2 ) * b