@seberg - Thanks for the catch on the bitwise comparisons! I clearly didn't think it through quite clearly enough.  

I'll run my suggestion by the list and then update it to fall back on a structured array for dtypes other than int, float, etc. (Float bitwise equality should be safe, beyond the usual caveats with float equality, right?)