参考:python如何保存变量
写论文的时候,自己处理了一组数据,已经完美的各种处理好了,但是在 jupyter notebook 中想要新建一个文件再另外一个 model 上面处理的时候就会遇到这个问题,如何将数据存储,否则还要从头读取处理,下面针对这个问题进行说明。
1. numpy 自带方法
此方法也是蛮简单的
- numpy.save():数组会以未压缩的原始二进制格式保存在扩展名为.npy的文件中。
- numpy.load():读取 .npy 文件的数据,直接转换为 numpy 数组
☀☀☀<< 举例 >>☀☀☀
>>> import numpy as np >>> a = np.arange(24).reshape(2,3,4) >>> a array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]]) >>> np.save("D:/aa/npp.npy", a) >>> b = np.load("D:/aa/npp.npy") >>> b array([[[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]])
2. pandas 自带方法
此方法是最方便最简单的
- to_pickle:此方法是将 dataframe 变量数据直接存储为本地文件,对于文件扩展名没有要求
- read_pickle:此方法是将本地存储的变量读取并转为 dataframe 文件
☀☀☀<< 举例 >>☀☀☀
>>> import pandas as pd >>> import numpy as np >>> df = pd.DataFrame(np.arange(12).reshape(3, 4)) >>> df 0 1 2 3 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11 >>> df.columns = ['I', 'II', 'III', 'IV'] >>> df I II III IV 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11 >>> df.to_pickle(r"D:/aa/df") >>> dff = pd.read_pickle(r"D:/aa/df") >>> dff I II III IV 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11
3. sklearn 的自带方法
☀☀☀<< 举例 >>☀☀☀
from sklearn.externals import joblib # 保存x joblib.dump(x, 'x.pkl') # 加载x x = joblib.load('x.pkl')
4. pickle 库操作
☀☀☀<< 举例 >>☀☀☀
import pickle # 存储变量的文件的名字 filename = 'shoplist.data' # 初始化变量 shoplist = ['apple', 'mango', 'carrot'] # 以二进制写模式打开目标文件 f = open(filename, 'wb') # 将变量存储到目标文件中区 pickle.dump(shoplist, f) # 关闭文件 f.close() # 删除变量 del shoplist # 以二进制读模式打开目标文件 f = open(filename, 'rb') # 将文件中的变量加载到当前工作区 storedlist = pickle.load(f) print(storedlist)