jax.scipy.cluster.vq.vq#
- jax.scipy.cluster.vq.vq(obs, code_book, check_finite=True)[source]#
将代码本中的代码分配给一组观察值。
JAX 实现
scipy.cluster.vq.vq()
。根据最近的欧氏距离,将
obs
中的每个观测向量分配给code_book
中的一个代码。- 参数:
obs (ArrayLike) – 形状为
(M, N)
的观测向量数组。每一行表示一个观测值。如果obs
为一维,则每个条目都被视为长度为 1 的观测值。code_book (ArrayLike) – 形状为
(K, N)
的代码数组。每一行表示一个代码向量。如果code_book
为一维,则每个条目都被视为长度为 1 的代码。check_finite (bool) – 在 JAX 中未使用
- 返回值:
一个数组元组
(code, dist)
code
是一个形状为(M,)
的整数数组,包含索引0 <= i < K
,表示对于obs
中的给定条目,在code_book
中最接近的条目。dist
是一个形状为(M,)
的浮点数数组,包含每个观测值与其最近代码之间的欧几里得距离。
- 返回类型:
示例
>>> obs = jnp.array([[1.1, 2.1, 3.1], ... [5.9, 4.8, 6.2]]) >>> code_book = jnp.array([[1., 2., 3.], ... [2., 3., 4.], ... [3., 4., 5.], ... [4., 5., 6.]]) >>> codes, distances = jax.scipy.cluster.vq.vq(obs, code_book) >>> print(codes) [0 3] >>> print(distances) [0.17320499 1.9209373 ]