Why can Numpy directly manipulate torch.tensor

I am prepared to get rid of Tensorflow and join the club of Pytorch,
and I found that Numpy can directly mannipulate torch.tensor,
which is not supported in tensorflow1.x.
And I am wondering why Numpy can directly manipulate torch.tensor which are not exactly np.array type?

PyTorch tensors implement the __array__ method, which is used for the interop between numpy and PyTorch, if I’m not mistaken.
That being said, I would be careful with applying numpy operations directly on tensors especially if they require gradients and you want to backpropagate through them.