python 存储读取变量的几种方法

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)

5. Pytorch 库操作

模型保存加载方式一:

保存:

torch.save(model.state_dict(), mymodel.pth)    # 只保存模型权重参数,不保存模型结构

调用:

model = My_model(*args, **kwargs)  #这里需要重构模型结构,My_model
model.load_state_dict(torch.load(mymodel.pth))  #这里根据模型结构,调用存储的模型参数
model.eval()

模型保存加载方式二:

保存:

torch.save(model, mymodel.pth)  # 保存整个 model 的状态

调用:

model=torch.load(mymodel.pth)  # 这里已经不需要重构模型结构了,直接 load 就可以  
model.eval()
  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python文件读取有多种方式,常见的有以下几种方法: 1. 使用with open()语句直接打开并读取文件。这种方式可以逐行读取文件内容,并将每行作为一个字符串进行处理。例如: with open('filepath', 'r') as f: for line in f: print(line) [1] 2. 按行读取文件内容。这种方法可以逐行读取文件,并将每行内容作为一个字符串返回。例如: f1 = open("C:/Users/Administrator/Desktop/qj_ly_product_list.txt", 'r', encoding='UTF-8') for i in f1: print(i, end='') [2] 3. 读取整个文件并将内容存储在一个字符串变量中。这种方法适用于文件大小适中的情况,如果文件过大,可能会超出可用内存。例如: file_object = open("test.py", 'r') try: all_the_text = file_object.read() print(type(all_the_text)) print("all_the_text=", all_the_text) finally: file_object.close() [3] 以上就是Python文件读取几种常见方法。可以根据实际需求选择适合的方法进行文件读取操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python 文件读取的4种方式](https://blog.csdn.net/Decennie/article/details/119223021)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [python读取文件方法详解](https://blog.csdn.net/qnlailai/article/details/108042154)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [python读取文件的几种方式](https://blog.csdn.net/qq_42759120/article/details/125283271)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值