alex_bn_lee

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

【523】python存储变量方法

参考:python如何保存变量

参考:numpy的文件存储.npy .npz 文件详解

  写论文的时候,自己处理了一组数据,已经完美的各种处理好了,但是在 jupyter notebook 中想要新建一个文件再另外一个 model 上面处理的时候就会遇到这个问题,如何将数据存储,否则还要从头读取处理,下面针对这个问题进行说明。

1. numpy 自带方法

  此方法也是蛮简单的

  • numpy.save():数组会以未压缩的原始二进制格式保存在扩展名为.npy的文件中。
  • numpy.load():读取 .npy 文件的数据,直接转换为 numpy 数组

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
>>> import numpy as np
>>> a = np.arange(24).reshape(2,3,4)
>>> a
array([[[ 0123],
        [ 4567],
        [ 89, 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([[[ 0123],
        [ 4567],
        [ 89, 10, 11]],
 
       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])

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

1
np.load(path, allow_pickle=True)

 

2. pandas 自带方法

  此方法是最方便最简单的

  • to_pickle:此方法是将 dataframe 变量数据直接存储为本地文件,对于文件扩展名没有要求
  • read_pickle:此方法是将本地存储的变量读取并转为 dataframe 文件

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
>>> 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 的自带方法(感觉最简单)

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

  注意:新版 sklearn 会报错,直接 import joblib 即可

  参考:(注意下面评论)cannot import name joblib from sklearn.externals

1
2
3
4
5
from sklearn.externals import joblib
# 保存x
joblib.dump(x, 'x.pkl')
# 加载x
x = joblib.load('x.pkl')

  新版实现方法

1
2
3
4
5
import joblib
# 保存x
joblib.dump(x, 'x.pkl')
# 加载x
x = joblib.load('x.pkl')

 

4. pickle 库操作

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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)

  

posted on   McDelfino  阅读(1610)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2019-01-15 【348】通过 Numpy 创建各式各样的矩阵
2019-01-15 【347】将jupyter notebook嵌入博客园
2018-01-15 【290】Python 常用说明
2018-01-15 【290】Python 模块(自定义包)
2018-01-15 【290】Python 函数
点击右上角即可分享
微信分享提示