【发布时间】:2018-10-25 11:32:19
【问题描述】:
我有以下代码行。
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]是我的数据框data中mol列的x条目。对于这些 data["mol"][x] 值中的每一个,chemcepterize_mol 会给我一个不同的 3 维向量,我需要存储它。
我声明了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 数据框列中。
【问题讨论】:
标签: python pandas multidimensional-array conv-neural-network array-broadcasting