Hi !
To clear things up
If you want to do the equivalent of  numpy.random.choice 58:
a = np.array([1, 2, 3, 4])
p = np.array([0.1, 0.1, 0.1, 0.7])
n = 2
replace = True


b = np.random.choice(a, p=p, size=n, replace=replace)

In pytorch you can use torch.multinomial 459 :
a = torch.tensor([1, 2, 3, 4])
p = torch.tensor([0.1, 0.1, 0.1, 0.7])
n = 2
replace = True


idx = p.multinomial(num_samples=n, replacement=replace)
b = a[idx]

Careful, np.random.choice defaults to replace=True
But torch.multinomial defaults to replacement=False