Python Vector 操作

引言

机器学习的很多项目都会使用 Python 作为编程语言,这是因为不同于其他编程语言,PythonNumpy 库可以快速地实现矢量操作。在其他编程语言中,适量操作往往需要用户自己构建,而在 Python 中,我们可以很容易得到结果,这里特来介绍一下。

正文

矢量加法

Python 中的数组本身就可以看作是一个矢量,因此,矢量加法就是数组简答地相加。

import numpy as np


a = np.array([1, 0])
b = np.array([0, 1])
print(a + b)
"""
result:
[1 1]
"""

矢量减法

由于减法与加法互为逆运算,减法也可以看作是加上也给负数,因此,矢量减法的做法可类比上述矢量加法。

矢量点乘

import numpy as np


a = np.array([1, 1])
b = np.array([2, 3])
print(a * b)
"""
result:
[2 3]
"""

显然,简单的数组相乘并不等同于矢量点乘,少了一步求和运算。我们可以添加上一步求和。

import numpy as np


a = np.array([1, 1])
b = np.array([2, 3])

print(np.sum(a * b))
"""
result:
5
"""

我们得到了正确的结果。
然而在 Python 中有更简单的方式------np.vdot() 或者 np.dot()

import numpy as np

a = np.array([1, 1])
b = np.array([2, 3])

print(np.dot(a, b))
print(np.vdot(a, b))
"""
result:
5
5
"""

矢量叉乘

import numpy as np

a = np.array([1, 1])
b = np.array([2, 3])

a1 = np.array([1, 1, 0])
b1 = np.array([2, 3, 0])
print(np.cross(a, b))
print(np.cross(a1, b1))

"""
result:
1
[0 0 1]
"""

我们知道,平面内矢量叉乘方向是垂于与平面的方向,因此,二维矢量叉乘得到的结果是一个数,而这个数实际上的意义是其他两个方向为 0 的矢量。如上述代码得到的结果所示,1 的实际意义是 [0 0 1]

矢量大小

import numpy as np

a = np.array([1, 1])

print(np.sqrt(np.dot(a, a)))
"""
result:
1.4142135623730951
"""

本文仅作为抛砖引玉,有想要详细了解 Numpy 模块用法的可以学习本人专栏 ------- Python科学计算进阶

如果大家觉得有用,就请点个赞吧~

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勤奋的大熊猫

你的鼓励将是我写作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值