Python-保存到Pickle文件时的数据类型保留

Python-保存到Pickle文件时的数据类型保留,python,numpy,pickle,Python,Numpy,Pickle,我正在将numpy数组的字典保存到pickle文件中。然后将它们取消勾选为新变量。代码如下: 酸洗: # here the variables 'train_dataset', 'train_labels' etc are all np arrays. save = { 'train_dataset': train_dataset, 'train_labels': train_labels, 'valid_dataset': valid_dataset, 'val

我正在将numpy数组的字典保存到pickle文件中。然后将它们取消勾选为新变量。代码如下:

酸洗:

# here the variables 'train_dataset', 'train_labels' etc are all np arrays.
save = {
    'train_dataset': train_dataset,
    'train_labels': train_labels,
    'valid_dataset': valid_dataset,
    'valid_labels': valid_labels,
    'test_dataset': test_dataset,
    'test_labels': test_labels,
    }
pickle.dump(save, f, pickle.HIGHEST_PROTOCOL)
取消勾选:

save = pickle.load(f)
train_dataset_new = save['train_dataset']
train_labels_new = save['train_labels']
valid_dataset_new = save['valid_dataset']
valid_labels_new = save['valid_labels']
test_dataset_new = save['test_dataset']
test_labels_new = save['test_labels']
从pickle文件加载的变量也是np数组吗?如果可以的话,也请详细说明一下

感谢您直接从以下网站引用:

从打开的文件对象文件中读取字符串,并将其解释为 pickle数据流,重构并返回原始对象 等级制度

检查加载变量的数据类型的小测试代码,即

将numpy导入为np
进口泡菜
#f=打开(“酸洗的p”、“wb”)
列车数据集=np.ones(5)
列车标签=np.ones(5)
有效的数据集=np.ones(5)
有效标签=np.ones(5)
测试数据集=np.ones(5)
测试标签=np.标签(5)
打印类型(列车数据集)#
打印列_dataset.shape#
#这里的变量“train_数据集”、“train_标签”等都是np数组。
保存={
“列车数据集”:列车数据集,
“列车标签”:列车标签,
“有效的\u数据集”:有效的\u数据集,
“有效的\u标签”:有效的\u标签,
“测试数据集”:测试数据集,
“测试标签”:测试标签,
}
pickle.dump(保存、打开(“save.p”、“wb”)、pickle.HIGHEST\u协议)
save=pickle.load(打开(“save.p”、“rb”))
train\u dataset\u new=保存['train\u dataset']
列车标签\u新建=保存[“列车标签”]
valid\u dataset\u new=保存['valid\u dataset']
valid\u labels\u new=保存['valid\u labels']
test\u dataset\u new=保存['test\u dataset']
test\u labels\u new=保存['test\u labels']
打印类型(列数据集新)
打印列_数据集_new.shape#
import numpy as np
import pickle 

#f = open( "pickled.p", "wb" )

train_dataset = np.ones(5)
train_labels = np.ones(5)
valid_dataset = np.ones(5)
valid_labels = np.ones(5)
test_dataset = np.ones(5)
test_labels = np.ones(5)

print type(train_dataset)  # <type 'numpy.ndarray'>
print train_dataset.shape  # <5L,>

# here the variables 'train_dataset', 'train_labels' etc are all np arrays.
save = {
    'train_dataset': train_dataset,
    'train_labels': train_labels,
    'valid_dataset': valid_dataset,
    'valid_labels': valid_labels,
    'test_dataset': test_dataset,
    'test_labels': test_labels,
    }
pickle.dump(save, open( "save.p", "wb" ), pickle.HIGHEST_PROTOCOL)

save = pickle.load(open( "save.p", "rb" ))
train_dataset_new = save['train_dataset']
train_labels_new = save['train_labels']
valid_dataset_new = save['valid_dataset']
valid_labels_new = save['valid_labels']
test_dataset_new = save['test_dataset']
test_labels_new = save['test_labels']

print type(train_dataset_new)  # <type 'numpy.ndarray'>
print train_dataset_new.shape  # <5L,>