code: def add_virtualfields(self, names, methods):
          
          if isinstance(names, string_types):
              names = [names]
              methods = [methods]
          out = self.add_properties(names, methods)
          if out._virtualfields is None:
              out._virtualfields = []
          out._virtualfields.extend(names)
          return out
docs: Returns a view of this array with the given methods added as virtual
          fields. Specifically, the given methods are added using add_properties
          and their names are added to the list of virtual fields. Virtual fields
          are properties that are assumed to operate on one or more of self's
          fields, thus returning an array of values.