【523】python存储变量方法
参考:python如何保存变量
写论文的时候,自己处理了一组数据,已经完美的各种处理好了,但是在 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([[[ 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,需要改为如下:
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 2021-01-15 17:04 McDelfino 阅读(1610) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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 函数