<<线性代数(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)) 
京公网安备 11010502036488号