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

 更新时间:2022年11月23日 14:43:56   作者:Dust_Evc  
这篇文章主要介绍了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 存储变量的几种方法的文章就介绍到这了,更多相关python 存储变量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python 内置函数sorted()的用法

    Python 内置函数sorted()的用法

    这篇文章主要介绍了Python 内置函数sorted()的用法,文章内容介绍详细具有一的参考价值,需要的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-03-03
  • PyTorch中的C++扩展实现

    PyTorch中的C++扩展实现

    这篇文章主要介绍了PyTorch中的C++扩展实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 通过Python扫描代码关键字并进行预警的实现方法

    通过Python扫描代码关键字并进行预警的实现方法

    这篇文章主要介绍了通过Python扫描代码关键字并进行预警的实现方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • python各层级目录下import方法代码实例

    python各层级目录下import方法代码实例

    这篇文章主要介绍了python各层级目录下import方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 初窥Python门缝了解入门路径

    初窥Python门缝了解入门路径

    Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计,作为一门叫做ABC语言的替代品。 Python提供了高效的高级数据结构,还能简单有效地面向对象编程
    2021-10-10
  • python return实现汇率转换器教程示例

    python return实现汇率转换器教程示例

    这篇文章主要为大家介绍了python return实现汇率转换器教程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Python 机器学习工具包SKlearn的安装与使用

    Python 机器学习工具包SKlearn的安装与使用

    Sklearn(全称 SciKit-Learn),是基于 Python 语言的机器学习工具包。本文将简单的介绍SKlearn安装与使用,想要入坑机器学习的同学可以参考下
    2021-05-05
  • Python中字符串切片详解

    Python中字符串切片详解

    这篇文章主要介绍了Python中字符串切片,在python中定义个字符串然后把它赋值给一个变量。我们可以通过下标访问单个的字符,跟所有的语言一样,下标从0开始。这时我们可以通过切片方式来截取出我们定义的字符串的一部分,下面小编将为大家详细介绍,需要的朋友可以参考下
    2021-10-10
  •  python 中的条件判断语句的使用介绍

     python 中的条件判断语句的使用介绍

    这篇文章主要介绍了 python 中的条件判断语句的使用,主要学习内容有封装过于复杂的逻辑判断,不同分支下的重复代码等,更多相关内容,需要的小伙伴可以参考下面文章详细介绍内容
    2022-03-03
  • Python StrEnum基本概念和使用场景分析

    Python StrEnum基本概念和使用场景分析

    StrEnum是Python枚举家族的一个强大补充,特别适合处理字符串常量,它结合了枚举的类型安全性和字符串的灵活性,使得在许多场景下的编程变得更加简洁和安全,本文将介绍StrEnum的基本概念和使用场景,并通过示例代码来展示它的实际应用,感兴趣的朋友跟随小编一起看看吧
    2024-07-07

最新评论