scipy中squareform函式詳解

2021-08-16 22:54:21 字數 1326 閱讀 8092

scipy.spatial.distance.squareform(x, force=』no』, checks=true)

converts a vector-form distance vector to a square-form distance matrix, and vice-versa.

解釋
用來把乙個向量格式的距離向量轉換成乙個方陣格式的距離矩陣,反之亦然。

x: 型別是ndarray

官網上說是either a condensed or redundant distance matrix.誰知道這裡說的簡潔或者冗餘距離矩陣是什麼鬼?答案揭曉,我知道:首先輸入如果是矩陣的話必須是距離矩陣,距離矩陣的特點是

1. d*d的對稱矩陣,這裡d表示點的個數;

2. 對稱矩陣的主對角線都是0;

另外,如果輸入的是距離向量的話,必須滿足d * (d-1) / 2.

force: 型別是str,可選

強制做』tovector』 或者』tomatrix』的轉換

checks: 型別是bool, 可選

如果是false,將不會進行對陣的對稱性和0對角線的檢查。

y:型別是ndarray

如果輸入的是簡潔的距離矩陣,將返回冗餘矩陣;

如果輸入的是冗餘的距離矩陣,將返回簡潔的距離矩陣。ab

cdef

a0184222

177216

231b

1840

45123

128200

c222450

129121

203d

177123

1290

4683

e216

128121460

83f231200

20383830

回到squareform函式,距離矩陣轉換為向量的過程可以成為壓縮儲存的過程。跟稀疏矩陣的壓縮儲存原理基本一致,有興許的同學,可以google下compressed row storage (crs)。

矩陣轉換為向量的過程:

1. 主對角線的值都為0,不儲存

2. 只儲存下三角矩陣的值

3. 根據下圖所示,按照逐行掃瞄的方法,依次找到下三角矩陣的距離值。

scipy轉換結果如下:

環境不小心關了,之後補一張圖吧~~

SciPy中的統計模組

numpy 替我們搞定了向量和矩陣的相關操作,基本上算是乙個高階的科學計算器。scipy 基於 numpy 提供了更為豐富和高階的功能擴充套件,在統計 優化 插值 數值積分 時頻轉換等方面提供了大量的可用函式,接下來我們就學習一下 scipy 中的統計和優化模組。import numpy as np...

scipy常用函式(更新中)

from scipy.optimize import fsolve def f x 定義要求解的方程組 x1 x 0 x2 x 1 return 2 x1 x2 2 1,x1 2 x2 2 result fsolve f,1,2 求解方程組的函式,f表示方程組函式,1,1 表示x print res...

scipy 中的whiten函式

呼叫kmeans函式,kmeans中呼叫了whited函式。查後,發現whiten是對輸入資料按標準差做歸一化處理。e 經過whiten後 x i xis tand dev atio nx frac xi s tand dev atio nxi 與標準化不同的是,白化處理沒有減去均值。下面是按步驟實...