0

我有一些 MRI 数据,我试图将处理后的 3D 图像作为具有相应标签的数组放入数据帧。然后将其保存在 CSV 文件中。我将每个 3D 图像制作成 16 16 16 阵列。

但是,保存 CSV 文件后,数组似乎并没有完全写入文件中。只有一部分得救了。

我不确定为什么...

这是我处理 3D 图像的代码:

trainDWI_images=[]
trainDWI_data=[]
for ptname in Train_uniqueID: 
  if Train_df[(Train_df.ProxID==ptname)&(Train_df.Name =='ep2d_diff_tra_DYNDIST0')].index.tolist() !=[]:
    index=Train_df[(Train_df.ProxID==ptname)&(Train_df.Name =='ep2d_diff_tra_DYNDIST0')].index.tolist()
  elif Train_df[(Train_df.ProxID==ptname)&(Train_df.Name == 'ep2d_diff_tra_DYNDIST_MIX0')].index.tolist() !=[]:
    index=Train_df[(Train_df.ProxID==ptname)&(Train_df.Name =='ep2d_diff_tra_DYNDIST_MIX0')].index.tolist()
  

  ijk_value=Train_df.ijk[index] #lesion location
  fid_value=Train_df.fid[index].values #label
  for i, ijk in enumerate(ijk_value.values):
    seed=[int(x) for x in ijk.split()]
    finding=fid_value[i]
    for filename in Train_total_DWI:
      if ptname in filename:
        i=Train_total_DWI.index(filename)
        niipath=os.path.join(train_dir,filename)   
        img_nii=nib.load(niipath)
        fourdimage=np.asanyarray(img_nii.dataobj)
        image = fourdimage[:, :, :, 0]
        img_arr=standardize(image)
        extracted_traint2images=img_arr[(seed[0]-8):(seed[0]+8),(seed[1]-8):(seed[1]+8),(seed[2]-8):(seed[2]+8)]#expanding the sub volume from lesion
        #print(extracted_traint2images.shape)
     
        trainDWI_images.append(extracted_traint2images)
        trainDWI_data.append({'Patient' : ptname , 'label' :finding,'images':extracted_traint2images , 'ijk':seed })
        #T2_df=T2_dframe.({'Patient' : ptname , 'label' :fid_value,'images':extracted_t2images , 'ijk':seed } , ignore_index=True)

trainDWI_df = pd.DataFrame(trainDWI_data)

以下是我保存为 CSV 文件的代码:

outtrdwi = 'Packed_DWI_train.csv'
outdir = './dir'
if not os.path.exists(outdir):
    os.mkdir(outdir)

fullname = os.path.join(outdir, outtrdwi)    

trainDWI_df.to_csv(fullname, encoding='utf-8')

我注意到在我的 CSV 文件中,数组的某些部分未保存并被替换为“...”

像这样 :

 [-0.32482308 -0.2481549  -0.2481549  ... -0.2481549  -0.13315264
   -0.47815944]

我怎样才能解决这个问题?谢谢你。

4

1 回答 1

0

我正在努力更好地了解您遇到的问题。看线:

 for i, ijk in enumerate(ijk_value.values):
    seed=[int(x) for x in ijk.split()]
    finding=fid_value[i]

[-0.32482308 -0.2481549 -0.2481549 ... -0.2481549 -0.13315264 -0.47815944]上面的“种子”变量的一个例子吗?如果是这样,我假设 ijk 是数据集中这些数字的字符串表示形式,由空格分隔。在我继续之前,我的假设是否准确?

于 2020-07-06T23:18:49.677 回答