skbio.tree.TreeNode.shuffle

TreeNode.shuffle(k=None, names=None, shuffle_f=<built-in method shuffle of numpy.random.mtrand.RandomState object>, n=1)[源代码]

用混乱的提示名称生成树

状态:从0.4.0开始实验。

参数:
  • k (int, optional) -- 要洗牌的提示数。如果k不是 None ,k个提示是随机选择的,只有这些名称将被洗牌。

  • names (list, optional) -- 要洗牌的特定提示名称。不能同时指定k和名称。

  • shuffle_f (func) -- Shuffle方法中,此函数必须接受列表并就地修改。

  • n (int, optional) -- 要执行的迭代次数。值必须大于0且 np.inf 可以为无限次的迭代指定。

备注

小费的名字在原地打乱。如果两者都不是 k 也不 names 提供,所有提示都是随机的。

生成器:

TreeNode --树的顶端名称被打乱了。

抛出:
  • ValueError -- 如果 k 如果小于2 n 小于1

  • ValueError -- 如果两者 knames 都是指定的

  • MissingNodeError -- 如果 names 已指定,但找不到其中一个名称

示例

交替两个提示上的名字“a”和“b”,并重复5次。

>>> from skbio import TreeNode
>>> tree = TreeNode.read(["((a,b),(c,d));"])
>>> rev = lambda items: items.reverse()
>>> shuffler = tree.shuffle(names=['a', 'b'], shuffle_f=rev, n=5)
>>> for shuffled_tree in shuffler:
...     print(shuffled_tree)
((b,a),(c,d));

((a,b),(c,d));

((b,a),(c,d));

((a,b),(c,d));

((b,a),(c,d));