torch.bucketize#
- torch.bucketize(input, boundaries, *, out_int32=False, right=False, out=None) Tensor#
Returns the indices of the buckets to which each value in the
inputbelongs, where the boundaries of the buckets are set byboundaries. Return a new tensor with the same size asinput. Ifrightis False (default), then the left boundary is open. Note that this behavior is opposite the behavior of numpy.digitize. More formally, the returned index satisfies the following rules:rightreturned index satisfies
False
boundaries[i-1] < input[m][n]...[l][x] <= boundaries[i]True
boundaries[i-1] <= input[m][n]...[l][x] < boundaries[i]- Parameters
- Keyword Arguments
out_int32 (bool, optional) – indicate the output data type. torch.int32 if True, torch.int64 otherwise. Default value is False, i.e. default output data type is torch.int64.
right (bool, optional) – determines the behavior for values in
boundaries. See the table above.out (Tensor, optional) – the output tensor, must be the same size as
inputif provided.
Example:
>>> boundaries = torch.tensor([1, 3, 5, 7, 9]) >>> boundaries tensor([1, 3, 5, 7, 9]) >>> v = torch.tensor([[3, 6, 9], [3, 6, 9]]) >>> v tensor([[3, 6, 9], [3, 6, 9]]) >>> torch.bucketize(v, boundaries) tensor([[1, 3, 4], [1, 3, 4]]) >>> torch.bucketize(v, boundaries, right=True) tensor([[2, 3, 5], [2, 3, 5]])