有没有更简单的命令来计算向量投影? 我现在使用的是以下方法:
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
也许这正是你真正想要的:
np.dot(x, y) / np.linalg.norm(y)
这应该是向量x
在向量y
上的投影 - 请参阅https://en.wikipedia.org/wiki/Vector_projection。或者,如果您想计算将y
投影到x
上,那么请在上述等式的分母(norm
)中用x
替换y
。y * np.dot(x, y) / np.dot(y, y)
计算向量 x
在向量 y
上的投影。