skbio.tree.TreeNode.to_array¶
- TreeNode.to_array(attrs=None, nan_length_value=None)[源代码]¶
返回self的数组表示
状态:从0.4.0开始实验。
- 参数:
attrs (list of tuple or None) -- 要返回的属性和类型。期望的形式是 [(attribute_name, type)] .如果 None 然后 name , length 和 id 返回。
nan_length_value (float, optional) -- 如果提供,替换任何 nan 在分支长度向量中(即。,
result['length']
)用这个值。 nan 分支长度可能来自没有长度的边(对于根节点父边是常见的),这会导致求和出现问题。
- 返回:
{id_索引:{id:TreeNode},子项索引:((node_id,left_child_id,right_child_id)),属性1:array(…)。。。属性:数组(…)}
- 返回类型:
dict of array
备注
属性数组按索引顺序排列,以便特雷诺德.id可以用作对数组的查找。
示例
>>> from pprint import pprint >>> from skbio import TreeNode >>> t = TreeNode.read(['(((a:1,b:2,c:3)x:4,(d:5)y:6)z:7);']) >>> res = t.to_array() >>> sorted(res.keys()) ['child_index', 'id', 'id_index', 'length', 'name'] >>> res['child_index'] array([[4, 0, 2], [5, 3, 3], [6, 4, 5], [7, 6, 6]]) >>> for k, v in res['id_index'].items(): ... print(k, v) ... 0 a:1.0; 1 b:2.0; 2 c:3.0; 3 d:5.0; 4 (a:1.0,b:2.0,c:3.0)x:4.0; 5 (d:5.0)y:6.0; 6 ((a:1.0,b:2.0,c:3.0)x:4.0,(d:5.0)y:6.0)z:7.0; 7 (((a:1.0,b:2.0,c:3.0)x:4.0,(d:5.0)y:6.0)z:7.0); >>> res['id'] array([0, 1, 2, 3, 4, 5, 6, 7]) >>> res['name'] array(['a', 'b', 'c', 'd', 'x', 'y', 'z', None], dtype=object)