Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将object类型的dataframe列转换为numpy数组_Python_Arrays_Pandas_Numpy_Dataframe - Fatal编程技术网

Python 将object类型的dataframe列转换为numpy数组

Python 将object类型的dataframe列转换为numpy数组,python,arrays,pandas,numpy,dataframe,Python,Arrays,Pandas,Numpy,Dataframe,我有一个保存图像id、图像类和图像数据的数据框: 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,

我有一个保存图像id、图像类和图像数据的数据框:

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 )
但是,保存图像数据且类型为“object”的列未转换为numpy数组中的相应行。例如,这是处理原始数据帧中的58行后每个numpy数组的形状:

train_img_array.shape
train_lab_array.shape
train_id_array.shape
(93615200,)
(58,)
(58,)

如何解决这个问题?

我已经找到了这个问题的答案。这相当直截了当,我只是没有看到它开始。这就是我在to numpy数组中获取对象数据的方式。值:

train_img_array = np.array([])
train_id_array = np.array([])
train_lab_array = np.array([])
train_id_array = img_train['ID'].values
train_lab_array = img_train['class'].values
train_img_array =img_train['data'].values
#train_img_array = np.row_stack(img_train['data'])

它返回如下内容:array[array[[[255,255,255,0],[255,255,255,0],[255,255,255,0],…,[255,255,255,255,0],[255,255,255,0],[255,255,255,255,0],,您能提供更多信息吗?尤其是行['ID']。values.dtype,行['class']。values.dtype和行['data'].values.dtype会很有帮助。@Scotty1-以下是数据类型:ID int64***class int64***data object***dtype:object谢谢,但您应该改进代码格式,使其可读。关于形状等的更多信息也会有所帮助。img_train.values应该给您一个numpy数组,不是吗?您不需要声明除非您要指定阵列的大小,否则阵列将被预先设置。