Я пытаюсь запустить что-то вроде следующего примера PyWavelets: Разложение / реконструкция PyWavelets
Мой немного более сложный код Python 3.6:
# Signal generation
N = 54 # IMPORTANT VALUE FOR THE REST OF MY STORY
np.random.seed(seed=17171) # To fix the data, but values do not matter
x = np.random.normal(0.,1.,N) # Random signal
# Wavelet decomposition
db = pywt.Wavelet('db4')
Wx = pywt.wavedec(x, db)
# Wavelet reconstruction
z = pywt.waverec(Wx, db)
При запуске этого куска кода все идет хорошо.Теперь, если мы увеличим размер сигнала, приняв N больше 54, например, N = 55, мы получим следующее ПРЕДУПРЕЖДЕНИЕ:
pywt / _multilevel.py: 148: FutureWarning: Использованиенепустая последовательность для многомерной индексации не рекомендуется;используйте arr[tuple(seq)]
вместо arr[seq]
.В будущем это будет интерпретироваться как индекс массива arr[np.array(seq)]
, что приведет либо к ошибке, либо к другому результату.a = a [[slice (s) for s in d.shape]]
Результат вычисления вейвлета верный, т.е. идеальное восстановление, но это сообщение действительно мешает, когда вы хотите обработать сигналы с помощьюболее 54 нажатий.
Не могли бы вы придумать, как исправить это "странное" поведение, связанное с размером данных, при работе с PyWavelet?
Cheers, Bagvian