3 向量的模、规范化、点乘在Python中的实现

本文介绍了如何在Python中实现向量的模长计算、规范化操作,并处理规范化时模为0的异常。在规范化函数中,通过设置浮点数误差容忍度EPSILON来避免0模错误,并在项目中创建了全局变量文件存放此值。
摘要由CSDN通过智能技术生成

在函数功能库中添加功能 ==> Vector.py

    def norm(self):
        '返回向量的模'
        return math.sqrt(sum(e**2 for e in self))

    def dot(self,another):
        '向量点乘,返回结果标量'
        assert len(self) == len(another), \
            'Error in dot product. Length of vectors must be same'
        return sum(a * b for a, b in zip(self,another))

	 def normalize(self):
	        '返回向量的单位向量'
	        if self.norm() < EPSILON:
	            raise ZeroDivisionError('Normalize error! norm is zero.')
	        return Vector(self._values) / self.norm()

验证函数功能 ==> main_vector.py

zero2 = Vector.zero(2)
    print(zero2)
    print('{} + {} = {}'.format(vec, zero2, vec + zero2))

    print('norm({}) = {}'.format(vec,vec.norm()))
    print('norm({}) = {}'.format(vec,vec2.norm()))
    print('norm({}) = {}'.format(vec,zero2.norm()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值