【发布时间】:2015-08-25 21:15:33
【问题描述】:
我想将 NumPy 数组转换为单位向量。更具体地说,我正在寻找这个归一化函数的等效版本:
def normalize(v):
norm = np.linalg.norm(v)
if norm == 0:
return v
return v / norm
这个函数处理向量v的范数为0的情况。
sklearn或numpy有没有类似的功能?
【问题讨论】:
-
你写的有什么问题?
-
如果这确实是一个问题,您应该检查 norm raise一个异常!
-
我的函数有效,但我想知道 python 的更常用库中是否有一些东西。我正在编写不同的机器学习函数,我希望避免定义太多新函数以使代码更清晰易读
-
我做了一些快速测试,发现
x/np.linalg.norm(x)在 CPU 上的 numpy 1.15.1 中并不比x/np.sqrt((x**2).sum())慢多少(大约 15-20%)。
标签: python numpy scikit-learn statistics normalization