scipy.cluster.vq.

whiten#

scipy.cluster.vq.whiten(obs, check_finite=None)[source]#

在每个特征的基础上规范化一组观测值。

在运行 k-means 之前,最好通过其标准差重新调整观测集每个特征维度的大小(即“whiten”它 - 就像“白噪声”中每个频率都具有相同的功率一样)。 每个特征除以其在所有观测值上的标准差,以使其具有单位方差。

参数:
obsndarray

数组的每一行都是一个观测值。 列是每次观察期间看到的特征

#        f0  f1  f2
obs = [[ 1., 1., 1.],  #o0
       [ 2., 2., 2.],  #o1
       [ 3., 3., 3.],  #o2
       [ 4., 4., 4.]]  #o3
check_finitebool, optional

是否检查输入矩阵是否仅包含有限数字。 禁用可能会提高性能,但如果输入确实包含无穷大或 NaN,则可能会导致问题(崩溃、非终止)。 默认值:对于急切后端为 True,对于惰性后端为 False。

返回值:
resultndarray

包含按每列的标准差缩放的 obs 中的值。

注释

whiten 除了 NumPy 之外,还对 Python Array API 标准兼容后端提供实验性支持。请考虑通过设置环境变量 SCIPY_ARRAY_API=1 并提供 CuPy、PyTorch、JAX 或 Dask 数组作为数组参数来测试这些功能。支持以下后端和设备(或其他能力)的组合。

CPU

GPU

NumPy

不适用

CuPy

不适用

PyTorch

JAX

Dask

不适用

有关更多信息,请参见对数组 API 标准的支持

示例

>>> import numpy as np
>>> from scipy.cluster.vq import whiten
>>> features  = np.array([[1.9, 2.3, 1.7],
...                       [1.5, 2.5, 2.2],
...                       [0.8, 0.6, 1.7,]])
>>> whiten(features)
array([[ 4.17944278,  2.69811351,  7.21248917],
       [ 3.29956009,  2.93273208,  9.33380951],
       [ 1.75976538,  0.7038557 ,  7.21248917]])