Skip to content

Commit ed19cfe

Browse files
committed
implement LArray.rename which does not modify the axis name inplace
1 parent a3a1f6e commit ed19cfe

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

larray/core.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -870,6 +870,12 @@ def axes_rename(self, **kwargs):
870870
self.axes = AxisCollection(axes)
871871
return self
872872

873+
def rename(self, axis, newname):
874+
axis = self.get_axis(axis)
875+
axes = [Axis(newname, a.labels) if a is axis else a
876+
for a in self.axes]
877+
return LArray(self, axes)
878+
873879
def full_key(self, key):
874880
"""
875881
Returns a full nd-key from a key in any of the following forms:

larray/tests/test_la.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,18 @@ def test_zeros_like(self):
518518
self.assertEqual(la.shape, (116, 44, 2, 15))
519519
self._assert_equal_raw(la, np.zeros((116, 44, 2, 15)))
520520

521+
def test_rename(self):
522+
la = self.larray
523+
new = la.rename('sex', 'gender')
524+
# old array axes names not modified
525+
self.assertEqual(la.axes_names, ['age', 'geo', 'sex', 'lipro'])
526+
self.assertEqual(new.axes_names, ['age', 'geo', 'gender', 'lipro'])
527+
528+
new = la.rename(self.sex, 'gender')
529+
# old array axes names not modified
530+
self.assertEqual(la.axes_names, ['age', 'geo', 'sex', 'lipro'])
531+
self.assertEqual(new.axes_names, ['age', 'geo', 'gender', 'lipro'])
532+
521533
def test_info(self):
522534
expected = """\
523535
116 x 44 x 2 x 15

0 commit comments

Comments
 (0)