Description
I've made a (draft) PR in #41153 that implements an index class for all the normal numpy numeric dtypes (int64/32/16/8, uint64/32/16/8 an dfloat65/32). There was some discussion in that PR how the public API for this should be, so I'm opening this issue for discussing that.
My plan is to get #41153 merged when its ready, possibly without any public-facing API changes. The public-facing changes would then come afterwards, and after there is an conclusion on how the API should be.
Summary of the options
As I see it the options for the API is:
Nr. | Option | Is backwards compat. | complexity |
---|---|---|---|
1. | Have a single, public NumericIndex class for all numeric index types |
Yes | Easy |
2. | Have dtype-specific subclasses (Int8Index , Int16Index , Int32Index , etc), and those can still be backed by a single internal NumIndex |
Yes | Easy |
3. | Use the existing, general-purpose Index class for these numeric numpy dtypes |
No | Harder |
4. | Use the existing, numeric index classes for these numeric numpy dtypes, so e.g. Int64Index can take int32 etc. |
No | Easy |
Options 1. and 3. would mean that the existing Int64Index
, UInt64Index
and Float64Index
would be deprecated and removed in pandas 2.0, because their functionality would bw covered by the other index classes.
Option 2. would increase the number of numeric index classes.
Options 4. would extend the functionality of the existing numeric index classes.
So there are quite a few possibilities. Hopefully we can come to a common conclusion.
@pandas-dev/pandas-core