Python 重载乘法运算符

Python 中的乘法运算符就是计算标量积(scalar product),也叫元素级乘法 (elementwise multipication)

如下:

    def __mul__(self, scalar):
        if isinstance(scalar, numbers.Real):
            return Vector(n * scalar for n in self)
        else:
            return NotImplemented

    def __rmul__(self, scalar):
        return self * scalar

涉及 Vector 操作数的积还有一种,叫两个向量的点积(dot product),如果把一个向量看做 1xN 矩阵,把另一个向量看做 Nx1 矩阵,那么就是矩阵乘法。在 numpy 中,点积使用 numpy.dot()函数计算。

如下:

 def __matmul__(self, other):
        try:
            return sum(a * b for a, b in zip(self, other))
        except TypeError:
            return NotImplemented

    def __rmatmul__(self, other):
        return self @ other  # this only works in Python 3.5

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值