Python 如何在dataframe列中存储图像?

Python 如何在dataframe列中存储图像?,python,pandas,multidimensional-array,conv-neural-network,array-broadcasting,Python,Pandas,Multidimensional Array,Conv Neural Network,Array Broadcasting,我有下面一行代码 v = chemcepterize_mol(mol, embed=10, res=0.2) 函数chemcepterize\u mol接受一些参数,如mol、embed、res。 此函数chemcepterize_mol返回一个值,该值存储在v中,它是一个普通变量 这个v实际上是一个表示三维图像的向量 v的形状如下所示 print(v.shape) (100, 100, 4) 具有4个通道的100X100像素图像 当我展示这张图片时,它看起来如下所示 plt.imshow

我有下面一行代码

v = chemcepterize_mol(mol, embed=10, res=0.2)
函数
chemcepterize\u mol
接受一些参数,如
mol、embed、res
。 此函数
chemcepterize_mol
返回一个值,该值存储在
v
中,它是一个普通变量

这个
v
实际上是一个表示三维图像的向量

v
的形状如下所示

print(v.shape) 
(100, 100, 4)
具有4个通道的100X100像素图像

当我展示这张图片时,它看起来如下所示

plt.imshow(v[:,:,:3])

到目前为止,它运行良好。但是我很少有这些类型的图像(三维向量),我需要存储在我的数据帧中。这意味着,我需要调用这个函数几次,比如说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]
是我的数据框
data
x
mol
的条目。对于每个
数据[“mol”][x]
值,
chemcepterize\u mol
将为我提供一个不同的三维向量,我需要存储该向量

我声明了
v=np.ndarray(shape=(100100,4,1))
以便在它的最后一个维度中,我可以存储所有向量(图像),但它给了我这个错误

ValueError: could not broadcast input array from shape (100,100,4) into shape (100,4,1)

如何将所有向量存储在某个数组中,或者最好存储在单独的数据帧列中。

可以将图像包装在python列表中。这使得将其存储在数据帧中成为可能

import cv2
import pandas as pd

img1 = cv2.imread('img1.png')
img2 = cv2.imread('img2.png')

df = pd.DataFrame()
df['img'] = [img] # Wrap image in python list

# Add another row using the "dictionary way"
d2 = {'img': [img2]}
df2 = pd.DataFrame.from_records(d2)
df.append(df2)