<<线性代数(Python实现)>>总目录
<<专为程序员设计的线性代数课>> 慕课网教程
开始时间: 2019-09-18
最后一次更新时间: 2019-09-18
第1章 实现向量
路径: LinearAlgebra.playLA.Vector
LinearAlgebra
- playLA
- Vector
class Vector(object): def __init__(self, lst): self._values = list(lst) def __getitem__(self, index): """获取下标为index得元素""" return self._values[index] def __iter__(self): """返回向量得迭代器""" return self._values.__iter__() @classmethod def zero(cls, dim): """返回一个dim维度的零向量""" return cls([0] * dim) def __add__(self, other): """向量相加, 返回结果向量""" assert len(self) == len(other),\ "Error in adding. Length of vectors must be same." return Vector([a+b for a,b in zip(self, other)]) def __sub__(self, other): """向量相减, 返回结果向量""" assert len(self) == len(other), \ "Error in subtracting. Length of vectors must be same." return Vector([a - b for a, b in zip(self, other)]) def __mul__(self, other): """向量的数量左乘, 返回结果向量""" return Vector([other*e for e in self]) def __rmul__(self, other): """向量的数量右乘, 返回结果向量""" return self*other def __pos__(self): """返回向量取正结果""" return 1 * self def __neg__(self): """返回向量取负结果""" return (-1) * self; def __len__(self): """返回向量长度""" return len(self._values) def __repr__(self): """命令行输出""" return "Vector({})".format(self._values) def __str__(self): """用户打印""" return "({})".format(", ".join(str(e) for e in self._values))