在PyCharm中实现自己的线性代数包。
创建 Python Package ==> PlayLA
创建 向量类,函数库 ==> Vector.py
from ._global import EPSILON
import math
class Vector:
def __init__(self,lst):
self._values =list(lst)
@classmethod
def zero(cls,dim):
'返回一个dim维的零向量'
return cls([0] * dim)
def normalize(self):
'返回向量的单位向量'
if self.norm() < EPSILON:
raise ZeroDivisionError('Normalize error! norm is zero.')
return Vector(self._values) / self.norm()
def norm(self):
'返回向量的模'
return math.sqrt(sum(e**2 for e in self))
def __add__(self, another):
'向量加法,返回结果向量'
assert len(self) == len(another), \
'Error in adding. length of vectors must be same.'
return Vector([a + b for a, b in zip(self, another)])
def __sub__(self, another):
assert len(self) ==