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,)
的整数数组,包含表示obs
中每个条目在code_book
中最接近条目的索引(0 <= i < K
)。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 ]