def drop_tips(self, names=None, wildcard=None, regex=None):
<EOL>nself = self.copy()<EOL>if not any([names, wildcard, regex]):<EOL><INDENT>return nself<EOL><DEDENT>tipnames = fuzzy_match_tipnames(<EOL>ttree=nself,<EOL>names=names,<EOL>wildcard=wildcard,<EOL>regex=regex,<EOL>mrca=False,<EOL>mono=False,<EOL>)<EOL>if len(tipnames) == len(nself):<EOL><INDENT>raise ToytreeError("<STR_LIT>")<EOL><DEDENT>if not tipnames:<EOL><INDENT>raise ToytreeError("<STR_LIT>")<EOL><DEDENT>keeptips = [i for i in nself.get_tip_labels() if i not in tipnames]<EOL>nself.treenode.prune(keeptips, preserve_branch_length=True)<EOL>nself._coords.update()<EOL>return nself<EOL>
Returns a copy of the tree with the selected tips removed. The entered
value can be a name or list of names. To prune on an internal node to
create a subtree see the .prune() function instead.

Parameters:
tips: list of tip names.

# example:
ptre = tre.drop_tips(['a', 'b'])