导读 | 这篇文章主要介绍了python 存储变量的几种方法,包括numpy 自带方法,pandas 自带方法,sklearn 的自带方法和pickle 库操作方法,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下 |
<<举例>>
>>> 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]]])
如果报错 Object arrays cannot be loaded when allow_pickle=False,需要改为如下:
np.load(path, allow_pickle=True)
<<举例>>
>>> 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
经测试,保存的文件大小与numpy.save()方法一致。
<<举例>>
注意:新版 sklearn 会报错,直接 import joblib 即可
参考:(注意下面评论)cannot import name joblib from sklearn.externals(文末见)
from sklearn.externals import joblib # 保存x joblib.dump(x, 'x.pkl') # 加载x x = joblib.load('x.pkl')
新版实现方法
import joblib # 保存x joblib.dump(x, 'x.pkl') # 加载x x = joblib.load('x.pkl')
<<举例>>
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)
使用scikit-learn跑一个两年前的案例, 报错:cannot import name ‘joblib’ from ‘sklearn.externals’
原因: scikit-learn版本太新了,
解决方法一: 直接使用import joblib
解决方法二: 回退版本
删除当前版本的scikit-learn pip uninstall scikit-learn
安装旧版本的scikit-learn pip install scikit-learn==0.20.3
原文来自:
本文地址://gulass.cn/python-much-linux.html编辑:xiangping wu,审核员:逄增宝
Linux大全:
Linux系统大全: