【发布时间】:2018-11-08 06:47:03
【问题描述】:
我有一个包含图像 ID、图像类和图像数据的 pandas 数据框:
img_train.head(5)
ID index class data
0 10472 10472 0 [[[255, 255, 255, 0], [255, 255, 255, 0], [255...
1 7655 7655 0 [[[255, 255, 255, 0], [255, 255, 255, 0], [255...
2 6197 6197 0 [[[255, 255, 255, 0], [255, 255, 255, 0], [255...
3 9741 9741 0 [[[255, 255, 255, 0], [255, 255, 255, 0], [255...
4 9169 9169 0 [[[255, 255, 255, 0], [255, 255, 255, 0], [255...
我正在尝试将这些列中的每一列转换为一个 numpy 数组:
train_img_array = np.array([])
train_id_array = np.array([])
train_lab_array = np.array([])
count = 0
for index, row in img_train.iterrows():
imgid = row['ID']
imgclass = row['class']
imgdata = row['data']
#print(imgdata)
train_img_array = np.append(train_img_array, imgdata )
train_lab_array = np.append(train_lab_array, imgclass )
train_id_array = np.append(train_id_array, imgid )
但是,保存图像数据并且属于“对象”类型的列未转换为 numpy 数组中的相应行。例如,这是从原始数据帧处理 58 行后每个 numpy 数组的形状:
train_img_array.shape
train_lab_array.shape
train_id_array.shape
(93615200,)
(58,)
(58,)
我该如何解决这个问题?
【问题讨论】:
-
它返回如下内容:array([ array([[[255, 255, 255, 0], [255, 255, 255, 0], [255, 255, 255, 0] , ..., [255, 255, 255, 0], [255, 255, 255, 0], [255, 255, 255, 0]],
-
您能提供更多信息吗?尤其是
row['ID'].values.dtype、row['class'].values.dtype和row['data'].values.dtype会很有帮助。 -
@Scotty1- 这是 dtypes:ID int64 *** class int64 *** data object *** dtype: object
-
谢谢,但您应该改进代码格式,使其易于阅读。有关形状等的更多信息也会有所帮助。
-
img_train.values应该给你一个 numpy 数组,不是吗?
标签: python arrays pandas numpy dataframe