首页 > 编程语言 >简单介绍python 存储变量的几种方法

简单介绍python 存储变量的几种方法

时间:2022-12-23 10:06:34浏览次数:83  
标签:存储 python numpy 几种 df joblib import pickle sklearn

这篇文章主要介绍了python 存储变量的几种方法,包括numpy 自带方法,pandas 自带方法,sklearn 的自带方法和pickle 库操作方法,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下

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

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

np.load(path, allow_pickle=True)

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

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


标签:存储,python,numpy,几种,df,joblib,import,pickle,sklearn
From: https://blog.51cto.com/u_12148962/5964867

相关文章

  • 跨域请求的几种解决方案
      springcloudgateway: ......
  • 每天一点基础K8S--K8S中的常用存储方案--emptyDir、hostPath、NFS
    这几天阳了,坐一会儿就腰痛K8S中的常用存储方案背景因为K8S的POD运行了最终的业务,而pod在控制器的管理下可能会出现重建,重建的pod是镜像的新实例,如果一些重要配置文件或......
  • 【python机器学习课程设计】狗的品种识别
    一、选题背景近年来,随着生活水平的提高,狗作为参加的宠物品种慢慢步入了中国千万家庭中。而狗的品种识别案例可以帮助我们了解狗品种的差异特征,并使用机器学习技术来分析这......
  • Using Python to Check If List of Words in String
    TocheckifalistofwordsisinastringusingPython,theeasiestwayiswithlistcomprehension.>>>list_of_words=["this","words","string"]>>>string=......
  • Python学习笔记--数据可视化的开头
    JSON数据格式的转换示例:若是有中文数据,可以在data后面加上ensure_ascii=Falsepyecharts模块网站:https://gallery.pyecharts.org(有参考代码可以看简称,画廊)记得......
  • 记一次云主机如何挂载对象存储
    @TOC前言随着云计算的发展,公有云成为中小型企业建设业务系统的首选,而对象存储则是存储里面必不可少的存储产品,对象存储不仅可以提供海量、高可靠、安全的服务,而且价格相对普......
  • 记一次云主机如何挂载对象存储
    @TOC前言随着云计算的发展,公有云成为中小型企业建设业务系统的首选,而对象存储则是存储里面必不可少的存储产品,对象存储不仅可以提供海量、高可靠、安全的服务,而且价格相对普......
  • Python学习笔记--异常+模块+包
    异常的捕获基本语法:示例:捕获指定异常基本语法:--必写示例:捕获多个异常示例:捕获所有异常示例:异常else--可写可不写示例:异常finally(无论是否出现异常......
  • Python requests库指定IP请求,并使用HTTPS证书验证
    背景运维同学通过网关平台下发nginx配置文件,下发的过程是先灰度发布,发灰度机器,然后需要验证域名的请求是否正常,然后在下发其他生产机器,但是验证过程是人为操作,这就不可避......
  • python中单下划线与双下划线命名变量的作用与区别
    在python中有一些与下划线相关的约定,这是一个有趣的主题,值得分析分析。对于变量前面有一个下划线,大家都知道这意味着这个变量是类内私有变量,但是奇怪的是这样的类内变量是......