Open
Description
Long overdue follow-up item on the initial merge of the nullable float64/float32 support (#34307).
List of follow-up TODO items:
- Update the
convert_dtypes
method to also return nullable floats (one question here: what with floats that are all "integer"-like? I think we want to keep returning nullable int for that, but we might want to add a parameter controlling that behaviour?) -> ENH: include conversion to nullable float in convert_dtypes() #38117 - Arithmetic operations with IntegerArray/BooleanArray can now return a FloatingArray instead of numpy float array(eg division with Int64 should give Float64 -> BUG: preserve nullable dtype for float result in IntegerArray/BooleanArray arithmetic ops #38178
- Ufuncs on IntegerArray/BooleanArray can return FloatingArray, ufuncs on mixture of IntegerArray/FloatArray
- Consolidate some tests that are common for integer/boolean/float
- For example the
value_counts
test could easily be shared and moved to masked/ (see the ones I added in BUG: preserve nullable dtype for float result in IntegerArray/BooleanArray arithmetic ops #38178)
- For example the
- Deduplicate more things between the Array classes and move to BaseMaskedArray (eg the arithmetic / comparison ops can probably be moved with a bit of refactoring)
-
__from_arrow__
-> REF: move __from_arrow__ to common base class for numeric masked arrays #38411 - ufuncs -> REF: move __array_ufunc__ to base NumericArray #38412
-
coerce_to_array
, but this will probably require some refactoring
-
- Honor the formatting options (eg precision) BUG: float formatters ignore nullable floating extension type #39336
- Fix membership test for np.nan (
np.nan in arr
), see API: membership checks on ExtensionArray containing NA values #37867 (comment)
And of course, we also still have the NA vs NaN discussion to further flesh out (#32265), but this issue is for the direct practical TODO items.