larray-project / larray

N-dimensional labelled arrays in Python
https://larray.readthedocs.io/
GNU General Public License v3.0
8 stars 6 forks source link

Array.reindex fails silently when given an Axis object from array (or which is equal to it) #1088

Closed gdementen closed 8 months ago

gdementen commented 9 months ago
>>> arr = ndtest(3)
>>> a = arr.a
>>> new_a = a.extend(['new'])
>>> new_a
Axis(['a0', 'a1', 'a2', 'new'], 'a')
>>> arr.reindex(a, new_a)
a   a0   a1   a2
   0.0  1.0  2.0
>>> arr.reindex(a.copy(), new_a)
a   a0   a1   a2
   0.0  1.0  2.0

Funnily, specifying the axis via a less precise method (axis name, axis reference or different axis with the same name) works:

>>> arr.reindex('a', new_a)
a   a0   a1   a2  new
   0.0  1.0  2.0  nan
>>> arr.reindex(X.a, new_a)
a   a0   a1   a2  new
   0.0  1.0  2.0  nan
>>> arr.reindex(new_a, new_a)
a   a0   a1   a2  new
   0.0  1.0  2.0  nan

I highly suspect this was introduced by #777 for implementing #712.