下面是我将一些numpy数组放入单元格的代码:
for name in tqdm(names):
img = PIL.Image.open(os.path.join(TRAIN_IMG_DIR, name)).convert('RGB')
img = np.array(img)
idxs = tile(img)
mydict[name] = [idxs]
df = pd.DataFrame.from_dict(mydict, orient='index').reset_index()
df.columns = ['ImageId', 'TileIds']
df.to_csv('36x224x224_otsu.csv')
其中:
ImageId TileIds
0 0eacb18986da2b25c5d82bd9676536e0_1.jpeg [50, 59, 122, 115, 150, 74, 66, 58, 143, 67, 2...
1 1796a7081ed86d83fddf677904d3843f_1.jpeg [96, 56, 66, 106, 43, 76, 86, 47, 45, 25, 116,...
2 9459f98d4b344c82d5c9b45a7af81b53_1.jpeg [375, 392, 184, 116, 248, 167, 217, 297, 99, 3...
到目前为止还不错,但当我加载csv文件并显示它时,我得到了:
ImageId TileIds
0 0452381085998676ae1e3c877df5bd4d_1.jpeg [ 7 21 1 58 69 14 15 64 74 27 8 40 47 34 79 ...
1 bbb2c6d4f203c71ba63d6ce8048d1ebc_1.jpeg [171 193 68 159 113 79 136 67 124 102 57 2...
2 ee7818bcdaf1b51212aa523778f68ee8_1.jpeg [206 224 191 172 223 197 180 190 42 251 162 2...
逗号已消失,并插入了一些空格,因此无法按空格分割我的目标是使用该数组为图像列表编制索引。 我尝试过各种方法,比如pickle和更改分隔符,但到目前为止都失败了。谢谢你的帮助,谢谢
一个简单的解决方法是在保存列表之前将其转换为字符串。然后,在加载后,将字符串拆分回列表。这将确保同样的结果
然后,加载后:
数据帧基本上是二维结构。在单元格中放置列表或数组意味着在这些单元格中放置Python对象
要进行说明,请在一个单元格中创建一个包含数组的帧,在另一个单元格中创建一个列表:
保存它:
数组已以
print/str
格式保存(带[],不带逗号)。列表也保存为字符串。它可以被引用,这样逗号就不会混淆默认的逗号分隔符read_csv
将这两个单元格作为字符串加载。它不会尝试将它们转换回某种排序Python对象:列表字符串可以轻松转换回字符串:
转换数组str需要更多的工作。该格式不用于重新创建数组。对于大型数组(超过1000项),它甚至会有省略号缺失值
在数据帧单元中放置阵列本身就很麻烦。这个保存/加载问题只是一个问题
相关问题 更多 >
编程相关推荐