scipy.cluster.vq.vq

scipy.cluster.vq.vq(obs, code_book, check_finite=True)[源代码]

将代码簿中的代码指定给观测值。

将代码簿中的代码指定给每个观测值。‘M’בN’中的每个观测向量 obs 数组与代码簿中的质心进行比较,并指定最近质心的代码。

中的功能 obs 应该有单位方差,这可以通过将它们传递给白化函数来实现。可以使用k-Means算法或不同的编码算法来创建代码簿。

参数
obsndarray

‘M’x‘N’数组的每一行都是一个观测值。这些柱子是在每次观察过程中看到的“特征”。必须首先使用白化函数或等效物对特征进行白化。

code_bookndarray

代码簿通常使用k-Means算法生成。数组的每一行包含不同的代码,列是代码的特征。

>>> #              f0    f1    f2   f3
>>> code_book = [
...             [  1.,   2.,   3.,   4.],  #c0
...             [  1.,   2.,   3.,   4.],  #c1
...             [  1.,   2.,   3.,   4.]]  #c2
check_finite布尔值,可选

是否检查输入矩阵是否仅包含有限个数字。禁用可能会带来性能提升,但如果输入确实包含无穷大或NAN,则可能会导致问题(崩溃、非终止)。默认值:true

退货
codendarray

保存每个观测的代码簿索引的长度为M的数组。

distndarray

观测与其最近代码之间的失真(距离)。

示例

>>> from numpy import array
>>> from scipy.cluster.vq import vq
>>> code_book = array([[1.,1.,1.],
...                    [2.,2.,2.]])
>>> features  = array([[  1.9,2.3,1.7],
...                    [  1.5,2.5,2.2],
...                    [  0.8,0.6,1.7]])
>>> vq(features,code_book)
(array([1, 1, 0],'i'), array([ 0.43588989,  0.73484692,  0.83066239]))