У меня есть большой массив файлов .wav (200 тыс. Образцов), загруженный с помощью scipy.io.wavfile. Я попытался составить гистограмму данных, используя matplotlib.pyplot hist с автоматическим биннингом. Он вернул ошибку:
ValueError: Number of samples, -72, must be non-negative.
Поэтому я решил сам установить бины, используя binwidth = 1000:
min_bin = np.min(data[peaks])
max_bin = np.max(data[peaks])
plt.hist(data[peaks], bins=np.arange(min_bin,max_bin, binwidth))
Когда я это делаю, выдает ошибку:
RuntimeWarning: overflow encountered in short_scalars
from scipy.io import wavfile
Вот типовые распечатки min_bin, max_bin, data:
Type min_bin: <class 'numpy.int16'> max_bin: <class 'numpy.int16'>
min_bin: -21231 max_bin: 32444
Type data <class 'numpy.ndarray'>
Проблема, похоже, связана с np.arange, который завершается сбоем, когда я предоставляю ему диапазон корзины изЗначения массива np.max и np.min .wav. Когда я вручную набираю целочисленные значения max и min в np.arange, это не проблема. Моя гипотеза состоит в том, что это какая-то ошибка адресации при обращении к массиву .wav, но я не уверен, как это исправить или почему это происходит.