當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python SciPy distance.jensenshannon用法及代碼示例


本文簡要介紹 python 語言中 scipy.spatial.distance.jensenshannon 的用法。

用法:

scipy.spatial.distance.jensenshannon(p, q, base=None, *, axis=0, keepdims=False)#

計算兩個概率數組之間的Jensen-Shannon 距離(度量)。這是Jensen-Shannon 散度的平方根。

兩個概率向量 p 和 q 之間的 Jensen-Shannon 距離定義為,

其中 的逐點均值, 是Kullback-Leibler 散度。

如果 p 和 q 的總和不等於 1.0,此例程將對它們進行歸一化。

參數

p (N,) 數組

左概率向量

q (N,) 數組

右概率向量

base 雙,可選

如果未給出用於計算輸出的對數的底,則例程使用 scipy.stats.entropy 的默認底。

axis 整數,可選

計算 Jensen-Shannon 距離的軸。默認值為 0。

keepdims 布爾型,可選

如果將其設置為 True,則縮小的軸將作為尺寸為 1 的尺寸留在結果中。使用此選項,結果將針對輸入數組正確廣播。默認為假。

返回

js 雙精度或 ndarray

沿軸的 p 和 q 之間的 Jensen-Shannon 距離。

注意

例子

>>> from scipy.spatial import distance
>>> import numpy as np
>>> distance.jensenshannon([1.0, 0.0, 0.0], [0.0, 1.0, 0.0], 2.0)
1.0
>>> distance.jensenshannon([1.0, 0.0], [0.5, 0.5])
0.46450140402245893
>>> distance.jensenshannon([1.0, 0.0, 0.0], [1.0, 0.0, 0.0])
0.0
>>> a = np.array([[1, 2, 3, 4],
...               [5, 6, 7, 8],
...               [9, 10, 11, 12]])
>>> b = np.array([[13, 14, 15, 16],
...               [17, 18, 19, 20],
...               [21, 22, 23, 24]])
>>> distance.jensenshannon(a, b, axis=0)
array([0.1954288, 0.1447697, 0.1138377, 0.0927636])
>>> distance.jensenshannon(a, b, axis=1)
array([0.1402339, 0.0399106, 0.0201815])

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.spatial.distance.jensenshannon。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。