亲宝软件园·资讯

展开

python 存储变量的几种方法(推荐)

Dust_Evc 人气:0

1. 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]]])

如果报错 Object arrays cannot be loaded when allow_pickle=False,需要改为如下:

np.load(path, allow_pickle=True)

2. pandas 自带方法

☀☀☀<<举例>>☀☀☀

>>> 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 的自带方法

经测试,保存的文件大小与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')

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)

cannot import name joblib from sklearn.externals

使用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

加载全部内容

相关教程
猜你喜欢
用户评论