我想将NumPy数组转换为单位向量。更具体地说,我正在寻找此功能的等效版本
def normalize(v): norm = np.linalg.norm(v) if norm == 0: return v return v / norm
skearn或中有类似的东西numpy吗?
skearn
numpy
此函数在v向量为0的情况下起作用。
v
如果您使用的是scikit-learn,则可以使用sklearn.preprocessing.normalize:
sklearn.preprocessing.normalize
import numpy as np from sklearn.preprocessing import normalize x = np.random.rand(1000)*10 norm1 = x / np.linalg.norm(x) norm2 = normalize(x[:,np.newaxis], axis=0).ravel() print np.all(norm1 == norm2) # True