Tôi có một danh sách các vectơ tạo ra bằng cách chạy:chuyển đổi ndarray tạo ra bởi hcluster thành một chuỗi Newick để sử dụng với ete2 gói
import hcluster
import numpy as np
from ete2 import Tree
vecs = [np.array(i) for i in document_list]
nơi document_list là một tập hợp các tài liệu web tôi đang phân tích. sau đó tôi thực hiện phân nhóm theo thứ bậc:
Z = hcluster.linkage(vecs, metric='cosine')
này tạo ra một ndarray như:
[[ 12. 19. 0. 1. ]
[ 15. 21. 0. 3. ]
[ 18. 22. 0. 4. ]
[ 3. 16. 0. 7. ]
[ 8. 23. 0. 6. ]
[ 5. 27. 0. 6. ]
[ 1. 28. 0. 7. ]
[ 0. 21. 0. 2. ]
[ 5. 29. 0.18350472 2. ]
[ 2. 10. 0.18350472 3. ]
[ 47. 30. 0.29289577 9. ]
[ 13. 28. 0.29289577 13. ]
[ 73. 32. 0.29289577 18. ]
[ 26. 12. 0.42264521 5. ]
[ 5. 33. 0.42264521 12. ]
[ 14. 35. 0.42264521 12. ]
[ 19. 35. 0.42264521 18. ]
[ 4. 20. 0.31174826 3. ]
[ 34. 21. 0.5 19. ]
[ 38. 29. 0.31174826 21. ]]
Có thể chuyển đổi ndarray này thành một chuỗi newick có thể được truyền cho Tree ete2() constructor để tôi có thể vẽ và thao tác cây mới bằng các công cụ được cung cấp bởi ete2? Có một số cách khác để tôi có thể tạo ra một cây/dendrogram sử dụng cùng một dữ liệu và ete2 (tôi nhận ra rằng có những gói khác có thể vẽ các chương trình dendrogram chẳng hạn như dendropy). và hcluster chính nó nhưng muốn sử dụng ete2 tất cả như nhau)?
Cảm ơn!
ooops, lưu ý dist_matrix đó là chức năng riêng của mình để tạo ra các mảng từ xa. Thay thế nó bằng các giá trị của riêng bạn (ví dụ: vecs) – jhc