我有一系列图像,存储在CVS文件中,每个图像一个字符串,该字符串是9216空格分隔整数的列表.我有一个函数将其转换为96×96 numpy数组.
我希望将这个numpy数组存储在我的数据帧的一列而不是字符串中.
但是,当我从列中检索项目时,它不再可用作numpy数组.
数据可以从这里下载,即training.cvs文件的最后一列.
https://www.kaggle.com/c/facial-keypoints-detection/data
import pandas as pd
import numpy as np
df_train = pandas.read_csv("training.csv")
def convert_to_np_arr(im_as_str):
im = [int(i) for i in im_as_str.split()]
im = np.asarray(im)
im = im.reshape((96,96))
return im
df_train['Im_as_np'] = df_train.Image.apply(convert_to_np_arr)
im = df_train.Im_as_np[0]
plt.imshow(im,cmap = cm.Greys_r)
plt.show()
如果不使用该函数并应用和存储图像,我直接使用代码它按预期工作
import pandas as pd
import numpy as np
df_train = pandas.read_csv("training.csv")
im = df_train.Image[0]
im = [int(i) for i in im.split()]
im = np.asarray(im)
im = im.reshape((96,96))
plt.imshow(im,cmap = cm.Greys_r)
plt.show()
最佳答案
你存储它的方式应该是正确的.访问数据更加困难.而不是im = df_train.Im_as_np [0]使用ix来访问数据:
im=df_train.ix[0,'Im_as_np']
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。