规范化 numpy ndarray 数据
Normalize numpy ndarray data
我的数据是 numpy ndarray,形状 (2,3,4) 如下:
我尝试通过 sklearn 标准化为每列标准化 0-1 比例。
from sklearn.preprocessing import normalize
x = np.array([[[1, 2, 3, 4],
[2, 2, 3, 4],
[3, 2, 3, 4]],
[[4, 2, 3, 4],
[5, 2, 3, 4],
[6, 2, 3, 4]]])
x.shape ==> ( 2,3,4)
x = normalize(x, norm='max', axis=0, )
但是,我发现了错误:
ValueError: Found array with dim 3. the normalize function expected <= 2.
如何解决这个问题?
谢谢。
似乎 scikit-learn
期望 ndarrays 最多有两个 dims。因此,要解决这个问题,可以将其重塑为 2D
,将其提供给 normalize
,从而得到一个 2D
数组,它可以重塑回原始形状 -
from sklearn.preprocessing import normalize
normalize(x.reshape(x.shape[0],-1), norm='max', axis=0).reshape(x.shape)
或者,使用 NumPy 更简单,可以很好地与通用 ndarrays -
x/np.linalg.norm(x, ord=np.inf, axis=0, keepdims=True)
我的数据是 numpy ndarray,形状 (2,3,4) 如下: 我尝试通过 sklearn 标准化为每列标准化 0-1 比例。
from sklearn.preprocessing import normalize
x = np.array([[[1, 2, 3, 4],
[2, 2, 3, 4],
[3, 2, 3, 4]],
[[4, 2, 3, 4],
[5, 2, 3, 4],
[6, 2, 3, 4]]])
x.shape ==> ( 2,3,4)
x = normalize(x, norm='max', axis=0, )
但是,我发现了错误:
ValueError: Found array with dim 3. the normalize function expected <= 2.
如何解决这个问题?
谢谢。
似乎 scikit-learn
期望 ndarrays 最多有两个 dims。因此,要解决这个问题,可以将其重塑为 2D
,将其提供给 normalize
,从而得到一个 2D
数组,它可以重塑回原始形状 -
from sklearn.preprocessing import normalize
normalize(x.reshape(x.shape[0],-1), norm='max', axis=0).reshape(x.shape)
或者,使用 NumPy 更简单,可以很好地与通用 ndarrays -
x/np.linalg.norm(x, ord=np.inf, axis=0, keepdims=True)