如何将 numpy 数组的数组存储在 csv 文件中?

How to store array of numpy array in csv file?

我有一个图像名称、图像路径及其对应的 cnn 特征向量(一个 numpy 数组)。并且有很多图像,这意味着我有一个名称、路径、向量的列表(每个都是维度为 (1, 2048, 14, 14) 的 numpy 数组,数据类型为 float32)。我必须以有效的方式存储和访问。我正在考虑将其存储在 csv 文件中。当我这样做时,我无法从 str 转换回 numpy 数组。请告诉我如何进行此操作,谢谢。

data = pd.DataFrame(columns=['name', 'path', 'vector'])
data['name'] = image_names
data['path'] = image_paths
for i in range(len(image_paths)):
   out = encoder(image_paths[i] #(1,2048,14,14)
   data['vector'][i] = out
data.to_csv('encoding.csv', sep = ',', na_rep='Unknown')
dr =pd.read_csv('encoding.csv')
for i in range(dr.shape[0]):
    c = dr['vector'][i]

c 是一个 str 对象。不确定如何将其转换为 numpy 数组。

您可以使用 numpy.save 保存 numpy 数组,如 docs here 所示。您可以将图像名称和图像路径保存为 .json 文件(并且只需将 .npy 文件的名称与 .json 文件的名称相同,以便于搜索) .