У меня есть следующая строка кода.
v = chemcepterize_mol(mol, embed=10, res=0.2)
Функция chemcepterize_mol
принимает несколько аргументов, таких как mol, embed, res
.Эта функция chemcepterize_mol
возвращает значение, которое я храню в v
, который является обычной переменной.
Этот v
на самом деле представляет собой вектор, представляющий трехмерное изображение.
Форма v
выглядит следующим образом.
print(v.shape)
(100, 100, 4)
100X100 пикселей изображения с 4 каналами.
Когда я показываю это изображение, оно выглядит так, как показано ниже.
plt.imshow(v[:,:,:3])
До этого момента он работал нормально.Но у меня есть несколько таких типов изображений (3-мерные векторы), которые мне нужно хранить в моем фрейме данных.Это означает, что мне нужно вызывать эту функцию chemcepterize_mol
несколько раз, скажем, 10 раз, чтобы получить 10 изображений.
Для этого я написал цикл for следующим образом.
v = np.ndarray(shape=(100,100, 4,1))
for x in range(10):
v[x]=chemcepterize_mol(data["mol"][x],embed=10,res=0.2)
Здесь data["mol"][x]
- это запись x
столбца mol
в моем фрейме данных data
,Для каждого из этих data["mol"][x]
значений chemcepterize_mol
даст мне другой трехмерный вектор, который мне нужно сохранить.
Я объявил v = np.ndarray(shape=(100,100, 4,1))
, чтобы в его последнем измерении я мог сохранить все своивекторы (изображения), но это дало мне эту ошибку.
ValueError: could not broadcast input array from shape (100,100,4) into shape (100,4,1)
Как я могу сохранить все свои векторы в некотором массиве или предпочтительно в отдельном столбце фрейма данных pandas.