MCPcopy Create free account
hub / github.com/numpy/numpy / rename_fields

Function rename_fields

numpy/lib/recfunctions.py:608–644  ·  view source on GitHub ↗

Rename the fields from a flexible-datatype ndarray or recarray. Nested fields are supported. Parameters ---------- base : ndarray Input array whose fields must be modified. namemapper : dictionary Dictionary mapping old field names to their new version.

(base, namemapper)

Source from the content-addressed store, hash-verified

606
607@array_function_dispatch(_rename_fields_dispatcher)
608def rename_fields(base, namemapper):
609 """
610 Rename the fields from a flexible-datatype ndarray or recarray.
611
612 Nested fields are supported.
613
614 Parameters
615 ----------
616 base : ndarray
617 Input array whose fields must be modified.
618 namemapper : dictionary
619 Dictionary mapping old field names to their new version.
620
621 Examples
622 --------
623 >>> from numpy.lib import recfunctions as rfn
624 >>> a = np.array([(1, (2, [3.0, 30.])), (4, (5, [6.0, 60.]))],
625 ... dtype=[('a', int),('b', [('ba', float), ('bb', (float, 2))])])
626 >>> rfn.rename_fields(a, {'a':'A', 'bb':'BB'})
627 array([(1, (2., [ 3., 30.])), (4, (5., [ 6., 60.]))],
628 dtype=[('A', '<i8'), ('b', [('ba', '<f8'), ('BB', '<f8', (2,))])])
629
630 """
631 def _recursive_rename_fields(ndtype, namemapper):
632 newdtype = []
633 for name in ndtype.names:
634 newname = namemapper.get(name, name)
635 current = ndtype[name]
636 if current.names is not None:
637 newdtype.append(
638 (newname, _recursive_rename_fields(current, namemapper))
639 )
640 else:
641 newdtype.append((newname, current))
642 return newdtype
643 newdtype = _recursive_rename_fields(base.dtype, namemapper)
644 return base.view(newdtype)
645
646
647def _append_fields_dispatcher(base, names, data, dtypes=None,

Callers 1

test_rename_fieldsMethod · 0.90

Calls 2

_recursive_rename_fieldsFunction · 0.85
viewMethod · 0.45

Tested by 1

test_rename_fieldsMethod · 0.72