信号处理工具包
spkit的Python项目详细描述
信号处理工具包
Github
PyPi - project
信息论函数
- 熵:香农熵,α阶rényi熵,碰撞熵
- 联合熵
- 条件熵
- 相互信息
- 交叉熵
- 库尔贝克-莱布勒分歧
- 利用fd规则计算直方图的最优格值
- 绘制具有最佳箱子大小的直方图
continuase小波变换和其他功能即将投入使用。
要求:
['numpy','matplotlib']
安装
pip
pip install spkit
从源代码构建
下载存储库或用git克隆它,在目录中的cd之后用
python setup.py install
示例-信息论
import numpy as np
import matplotlib.pyplot as plt
import spkit as sp
x = np.random.rand(10000)
y = np.random.randn(10000)
#Shannan entropy
H_x= sp.entropy(x,alpha=1)
H_y= sp.entropy(y,alpha=1)
#Rényi entropy
Hr_x= sp.entropy(x,alpha=2)
Hr_y= sp.entropy(y,alpha=2)
H_xy= sp.entropy_joint(x,y)
H_x1y= sp.entropy_cond(x,y)
H_y1x= sp.entropy_cond(y,x)
I_xy = sp.mutual_Info(x,y)
H_xy_cross= sp.entropy_cross(x,y)
D_xy= sp.entropy_kld(x,y)
print('Shannan entropy')
print('Entropy of x: H(x) = ',H_x)
print('Entropy of y: H(y) = ',H_y)
print('-')
print('Rényi entropy')
print('Entropy of x: H(x) = ',Hr_x)
print('Entropy of y: H(y) = ',Hr_y)
print('-')
print('Mutual Information I(x,y) = ',I_xy)
print('Joint Entropy H(x,y) = ',H_xy)
print('Conditional Entropy of : H(x|y) = ',H_x1y)
print('Conditional Entropy of : H(y|x) = ',H_y1x)
print('-')
print('Cross Entropy of : H(x,y) = :',H_xy_cross)
print('Kullback–Leibler divergence : Dkl(x,y) = :',D_xy)
plt.figure(figsize=(12,5))
plt.subplot(121)
sp.HistPlot(x,show=False)
plt.subplot(122)
sp.HistPlot(y,show=False)
plt.show()