scipy.cluster.hierarchy.
from_mlab_linkage#
- scipy.cluster.hierarchy.from_mlab_linkage(Z)[source]#
轉換 MATLAB(TM) 產生的連結矩陣為與此模組相容的新連結矩陣。
此轉換會進行兩件事
索引從
1..N
轉換為0..(N-1)
形式,以及新增第四欄
Z[:,3]
,其中Z[i,3]
代表非單例叢集i
中原始觀測值(葉節點)的數量。
當從 MATLAB 產生的舊版資料檔案載入連結時,此函數非常有用。
- 參數:
- Zndarray
MATLAB(TM) 產生的連結矩陣。
- 返回:
- ZSndarray
與
scipy.cluster.hierarchy
相容的連結矩陣。
參見
linkage
以了解連結矩陣的描述。
to_mlab_linkage
從 SciPy 轉換為 MATLAB 格式。
範例
>>> import numpy as np >>> from scipy.cluster.hierarchy import ward, from_mlab_linkage
給定 MATLAB 格式的連結矩陣
mZ
,我們可以使用scipy.cluster.hierarchy.from_mlab_linkage
將其匯入 SciPy 格式>>> mZ = np.array([[1, 2, 1], [4, 5, 1], [7, 8, 1], ... [10, 11, 1], [3, 13, 1.29099445], ... [6, 14, 1.29099445], ... [9, 15, 1.29099445], ... [12, 16, 1.29099445], ... [17, 18, 5.77350269], ... [19, 20, 5.77350269], ... [21, 22, 8.16496581]])
>>> Z = from_mlab_linkage(mZ) >>> Z array([[ 0. , 1. , 1. , 2. ], [ 3. , 4. , 1. , 2. ], [ 6. , 7. , 1. , 2. ], [ 9. , 10. , 1. , 2. ], [ 2. , 12. , 1.29099445, 3. ], [ 5. , 13. , 1.29099445, 3. ], [ 8. , 14. , 1.29099445, 3. ], [ 11. , 15. , 1.29099445, 3. ], [ 16. , 17. , 5.77350269, 6. ], [ 18. , 19. , 5.77350269, 6. ], [ 20. , 21. , 8.16496581, 12. ]])
如預期,返回的連結矩陣
Z
包含一個額外的欄位,用於計算每個叢集中原始樣本的數量。此外,所有叢集索引都減少了 1(MATLAB 格式使用 1 索引,而 SciPy 使用 0 索引)。