Я пытаюсь использовать библиотеку tslearn для анализа аудиофайлов. Файл имеет строку 45 КБ (45 КБ аудиосэмплов) и 1 столбец, но у каждой строки есть вложенный объект (N, 13). Таким образом, длина каждого образца различна, а функции одинаковы (13 функций). Я хочу растянуть их до 93 рядов, что означает, что если я напечатаю форму любого из них, он вернется (93,13).
пример данных:
первый вложенный объект в наборе данных, форма (43,13)
второй вложенный объект в наборе данных, форма (30,13)
Я пытался использовать эту библиотеку tslearn: https://tslearn.readthedocs.io/en/latest/gen_modules/preprocessing/tslearn.preprocessing.TimeSeriesResampler.html#tslearn.preprocessing.TimeSeriesResampler
но это только изменит столбец вместо строки. так что в основном, если у меня есть массив (44,13), он изменит форму массива на (44,93) вместо (93.13). Поэтому я попытался повернуть массив на 90 градусов и повторить анализ, но так как сам набор данных является только 1D с вложенным объектом 45K, мне пришлось создать пустой список, использовать цикл for, чтобы вынуть каждый объект, повернуть их на 90 градусов и вернуть их в список. Затем я попытался изменить список обратно на массив, так как tslearn.preprocessing.TimeSeriesResampler принимает массив только в качестве параметров. Однако он говорит мне, что «ValueError: не удалось передать входной массив из shape (13,41) в shape (13)» при попытке перенести список обратно в массив.
import numpy as np
spoken_train = np.load("spoken_train.npy", allow_pickle=True)
lis = []
for i in range(len(spoken_train)):
lis.append(np.rot90(spoken_train[i]))
myarray = np.asarray(lis)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-65-440f2eba9eba> in <module>
2 for i in range(len(spoken_train)):
3 lis.append(np.rot90(spoken_train[i]))
----> 4 myarray = np.asarray(lis)
/anaconda3/lib/python3.7/site-packages/numpy/core/numeric.py in asarray(a, dtype, order)
536
537 """
--> 538 return array(a, dtype, copy=False, order=order)
539
540
ValueError: could not broadcast input array from shape (13,41) into shape (13)
Что мне делать? Если есть более простой способ поворота вложенного массива, пожалуйста, дайте мне знать. Спасибо!