有没有办法将 [-3,1] 标准化为⎡⎣⎢⎢⎢− 310--√110--√⎤⎦⎥⎥⎥[−310110]与蟒蛇?

数据挖掘 机器学习 Python 数据挖掘 麻木的 正常化
2022-02-24 05:55:57

我正在学习SVD遵循这门 MIT 课程

讲师正在尝试对向量进行归一化

[31]

[310110]

我用 Python NumPy 试过这个

np.linalg.norm(v1,ord=2,axis=1,keepdims=True)

并得到

array([[3.],
       [1.]])

我想得到这样的东西

[[-0.9486833 ],
[ 0.31622777]]

Python(例如,NumPy)有没有办法完成这项工作?任何其他 3rd 方库也受到赞赏。

1个回答

你已经计算过了,但是你没有将输出绑定到一个变量,在 python 中也称为name 。尝试以下代码段:

result = np.linalg.norm(v1,ord=2,axis=1,keepdims=True)
print(result)


根据编辑,我更新了答案。您可能会找到问题的答案,找到所需内容的典型方法类似于以下函数:

def normalize(v):
    norm = np.linalg.norm(v)
    if norm == 0: 
       return v
    return v / norm

normalize等效地,有一个调用函数sklearn.preprocessing可以用于您的任务。