torch.Tensor.index_copy_ — PyTorch 2.7 documentation (original) (raw)

Tensor.index_copy_(dim, index, tensor) → Tensor

Copies the elements of tensor into the self tensor by selecting the indices in the order given in index. For example, if dim == 0and index[i] == j, then the ith row of tensor is copied to thejth row of self.

The dimth dimension of tensor must have the same size as the length of index (which must be a vector), and all other dimensions must match self, or an error will be raised.

Note

If index contains duplicate entries, multiple elements fromtensor will be copied to the same index of self. The result is nondeterministic since it depends on which copy occurs last.

Parameters

Example:

x = torch.zeros(5, 3) t = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype=torch.float) index = torch.tensor([0, 4, 2]) x.index_copy_(0, index, t) tensor([[ 1., 2., 3.], [ 0., 0., 0.], [ 7., 8., 9.], [ 0., 0., 0.], [ 4., 5., 6.]])