可以将numpy.linalg.norm替换为矩阵的L1范数的sklearn.preprocessing.normalize(X,norm ='l1',)吗?

时间:2017-06-23 05:38:26

标签: python numpy matrix scikit-learn

之前我使用过sklearn.preprocessing.normalize但是我想知道Numpy(或其他)对于矩阵的L1范数还有其他方法吗?我们可以使用numpy.linalg.norm(x, ord=None, axis=None, keepdims=False)代替sklearn吗?

根据document,linalg.norm params似乎不可能用于矩阵也不能用L1

x : array_like Input array. If axis is None, x must be 1-D or 2-D.
ord : {non-zero int, inf, -inf, ‘fro’, ‘nuc’}, optional

1 个答案:

答案 0 :(得分:1)

是。 numpy.linalg.norm适用于Matrix或矢量规范。

这取决于您想要的L1矩阵规范。您可以使用参数ord指定它。 (Doc

numpy.linalg.norm(x, ord=None, axis=None, keepdims=False)

由矢量范数引起的矩阵范数ord=inf

“逐步”矩阵规范,ord=0

Schatten规范,ord=nuc