mindspore.ops.bucketize

mindspore.ops.bucketize(input, boundaries, *, right=False)[源代码]

根据 boundariesinput 进行分桶。如果 rightFalse,则左边界关闭,对于 input 中的每个元素 x,返回的索引满足以下规则:

\[\begin{split}\begin{cases} boundaries[i-1] < x <= boundaries[i], & \text{if right} = False\\ boundaries[i-1] <= x < boundaries[i], & \text{if right} = True\\ \end{cases}\end{split}\]
参数:
  • input (Tensor) - 输入的Tensor。

  • boundaries (list) - 表示桶的边界值的有序列表。

关键字参数:
  • right (bool, 可选) - 如果为 False,则从边界获取输入中每个值的下限索引;如果为 True,则改为获取上限索引。默认值:False

返回:

Tensor,返回的索引值,shape与输入Tensor的shape相同,数据类型为int32。

异常:
  • TypeError - boundaries 不是list。

  • TypeError - input 不是Tensor。

支持平台:

Ascend GPU CPU

样例:

>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> input = Tensor(np.array([[3, 6, 9], [3, 6, 9]]))
>>> boundaries = list(np.array([1., 3., 5., 7., 9.]))
>>> output = ops.bucketize(input, boundaries, right=True)
>>> print(output)
[[2 3 5]
 [2 3 5]]