is `np.issubdtype(foo.dtype, np.complexfloating)` better than `np.iscomplexobj(foo)` here?