You have to permute the axes at some point. Usually I do: x.permute(1, 2, 0).numpy() to get the numpy array.
If I recall correctly, np.transpose should also take multiple axis indices.
As an alternative, you could use a transform from torchvision, e.g. torchvision.transforms.ToPILImage()(x) and maybe use a PIL function to draw on your image.