To form an intuition, make your values more extreme:
scores = torch.randn(5, 2) * 10
print(scores.softmax(dim=1)[:, 1])
print(scores.argmax(dim=1))

this is what I mean by softmax being an approximation for argmax (of course this only works for 0 and 1 (two classes), in general softmax gives you an approximation of the 1-hot encoding of argmax).
If you take away the * 10 you have a similar effect (thresholding at 0.5 for the argmax), but the approximation is less close in general (which is good because gradients are better when it’s not so close to 0 or 1).