def __iadd__(self, other):
# Order of testing is important!
if isinstance(other, numpy.ndarray):
self.n = max(self.n, other.shape[0])
for k in range(other.shape[0]):
self[k] += other[k]
return self
elif isSparseVector(other):
self.n = max(self.n, other.n)
inter = filter(self.values.has_key, other.values.keys())
other_only = filter(lambda x: not self.values.has_key,
other.values.keys())
for k in inter + other_only:
self[k] += other[k]
return self
elif operator.isNumberType(other):
for k in self.values.keys():
self[k] += other
return self
else:
raise TypeError("Cannot add to SparseVector")
评论列表
文章目录