MCPcopy Index your code
hub / github.com/numpy/numpy / addfield

Function addfield

numpy/ma/mrecords.py:705–739  ·  view source on GitHub ↗

Adds a new field to the masked record array Uses `newfield` as data and `newfieldname` as name. If `newfieldname` is None, the new field name is set to 'fi', where `i` is the number of existing fields.

(mrecord, newfield, newfieldname=None)

Source from the content-addressed store, hash-verified

703
704
705def addfield(mrecord, newfield, newfieldname=None):
706 """Adds a new field to the masked record array
707
708 Uses `newfield` as data and `newfieldname` as name. If `newfieldname`
709 is None, the new field name is set to 'fi', where `i` is the number of
710 existing fields.
711
712 """
713 _data = mrecord._data
714 _mask = mrecord._mask
715 if newfieldname is None or newfieldname in reserved_fields:
716 newfieldname = f'f{len(_data.dtype)}'
717 newfield = ma.array(newfield)
718 # Get the new data.
719 # Create a new empty recarray
720 newdtype = np.dtype(_data.dtype.descr + [(newfieldname, newfield.dtype)])
721 newdata = np.recarray(_data.shape, newdtype)
722 # Add the existing field
723 [newdata.setfield(_data.getfield(*f), *f)
724 for f in _data.dtype.fields.values()]
725 # Add the new field
726 newdata.setfield(newfield._data, *newdata.dtype.fields[newfieldname])
727 newdata = newdata.view(MaskedRecords)
728 # Get the new mask
729 # Create a new empty recarray
730 newmdtype = np.dtype([(n, np.bool) for n in newdtype.names])
731 newmask = np.recarray(_data.shape, newmdtype)
732 # Add the old masks
733 [newmask.setfield(_mask.getfield(*f), *f)
734 for f in _mask.dtype.fields.values()]
735 # Add the mask of the new field
736 newmask.setfield(ma.getmaskarray(newfield),
737 *newmask.dtype.fields[newfieldname])
738 newdata._mask = newmask
739 return newdata

Callers 1

test_addfieldMethod · 0.90

Calls 3

dtypeMethod · 0.45
valuesMethod · 0.45
viewMethod · 0.45

Tested by 1

test_addfieldMethod · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…