多尺度排列熵 的python程序
时间: 2023-09-05 18:13:36 浏览: 146
以下是多尺度排列熵的Python程序:
```python
import numpy as np
from collections import Counter
def permutation_entropy(time_series, m, delay):
n = len(time_series)
permutations = []
for i in range(n - delay * (m - 1)):
permutation = tuple(np.argsort(time_series[i:i+delay*m:delay]))
permutations.append(permutation)
counter = Counter(permutations)
p = np.array(list(counter.values())) / len(permutations)
return -np.sum(p * np.log2(p))
def multiscale_permutation_entropy(time_series, m, delay, scales):
mpes = []
for scale in scales:
if scale == 1:
mpes.append(permutation_entropy(time_series, m, delay))
else:
downsampled = np.mean(time_series.reshape(-1, scale), axis=1)
mpes.append(permutation_entropy(downsampled, m, delay))
return mpes
```
这个程序包含两个函数:`permutation_entropy` 和 `multiscale_permutation_entropy`。
`permutation_entropy` 函数计算给定时间序列的排列熵。参数 `time_series` 是一个一维数组,表示时间序列。`m` 是排列熵的阶数,`delay` 是排列熵的延迟。函数返回一个浮点数,表示排列熵。
`multiscale_permutation_entropy` 函数计算给定时间序列在多个尺度下的多尺度排列熵。参数 `scales` 是一个整数列表,表示要使用的尺度。函数返回一个浮点数列表,表示对应尺度下的多尺度排列熵。
这个程序依赖于 NumPy 和 collections 模块。
阅读全文