python - 使用python计算矢量投影

标签 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

最佳答案

也许这就是你真正想要的:

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

这应该给出矢量x到矢量y的投影 - 参见 https://en.wikipedia.org/wiki/Vector_projection 。或者,如果您想计算 yx 的投影,则将分母中的 y 替换为 x上述方程的(范数)。

编辑:正如 @VaidAbhishek 评论的那样,上面的公式适用于标量投影。要获得矢量投影,请将标量投影乘以第一个矢量投影到的矢量方向上的单位矢量。那么公式可以修改为:

y * np.dot(x, y) / np.dot(y, y)

用于将x向量投影到y上。

关于python - 使用python计算矢量投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55226011/

相关文章:

python - 生成广义汉明数 Python

python - 如何将数组从 dtype=object 转换为 dtype=np.int

python - numpy 数组中的奇怪赋值

python - 在numpy数组中查找连续的

python - 将数据框中的非数字转换为 NaN (numpy)?

python - tkinter Canvas 方法类似于 Text .see()

python - 使用 pykafka 在主题的特定分区上发布

python - 在 Python 字典中查找值

python - 跳过 <td> 标签内的特定文本,python beautifulsoup

python - 计算 numpy 数组中一行中重复元素的数量