У меня есть следующий фрейм данных:
d = {'histogram' : [[1,2],[3,4],[5,6]]}
df = pd.DataFrame(d)
Длина гистограмм всегда одинакова (в нашем примере 2).
и я хотел бы преобразовать столбец «гистограмма» в двумерный массив с нюансами для подачи в нейронную сеть.Предпочтительный вывод:
output_array = np.array(d["histogram"])
т.е.:
array([[1, 2],
[3, 4],
[5, 6]])
, однако, когда я пытаюсь:
df["histogram"].to_numpy()
, результат представляет собой массив списков вместо массива numpyмассивов:
array([list([1, 2]), list([3, 4]), list([5, 6])], dtype=object)
это проблематично для нейронных сетей, так как я должен указать размеры / форму.
Я пытаюсь решить эту проблему, приведя к типу numpy массив:
df["histogram_arrays"] = df["histogram"].apply(lambda x: np.array(x))
df["histogram_arrays"].to_numpy()
, который возвращает одномерный массив массивов, а не двумерный массив.
array([array([1, 2]), array([3, 4]), array([5, 6])], dtype=object)
Как получить гистограммы в двумерном массиве?