Well, you can, but it's not trivial, see [quaternion](https://github.com/martinling/numpy_quaternion) which is a "canonical" example of dtype subclass.