return self._child.shape @property def ndim(self): return self._child.ndim @property def _name(self): if self._name0: return self._name0 else: return self._child._name if PY2: copydoc(Map, Expr.map.im_func) else: copydoc(Map, Expr.map) class Apply(Expr): """ Apply an arbitrary Python function onto an expression Examples -------- >>> t = symbol('t', 'var * {name: string, amount: int}') >>> h = t.apply(hash, dshape='int64') # Hash value of resultant dataset You must provide the datashape of the result with the ``dshape=`` keyword. For datashape examples see