python numpy list 多维度数组保存和读取恢复

本文介绍了两种方法来处理Python numpy数组的保存和读取。第一种是利用numpy自带的功能,虽然繁琐但能实现文件的可视化;第二种方法则更方便,能够支持任意类型的数据,详细说明了如何进行保存和读取操作。
摘要由CSDN通过智能技术生成

一、numpy自带的方式保存数组到文件(麻烦)但文件可视化。

import numpy as np

# 生成数据
data = np.arange(200).reshape((4, 5, 10))

# 写入磁盘中
with open('test.txt', 'w') as outfile:
    # #开头的会被np.savetxt忽略
    outfile.write('# Array shape: {0}\n'.format(data.shape))


    for data_slice in data:
        # 左对齐宽度7 保留2位 浮点数
        # 保存二维数组
        np.savetxt(outfile, data_slice, fmt='%-7.2f')

        # 每段分隔标志
        outfile.write('# New slice\n')
# 读取
new_data = np.loadtxt('test.txt')

print(new_data.shape) # (20, 10)

# reshape 一下
new_data = new_data.reshape((4, 5, 10))

# 检测是否相同
assert np.all(new_data == data)

在这里插入图片描述

二、这种方式能支持任意类型的,怎么保存,怎么读取(方便)。

import pickle
import numpy as np
# 支持任意的数组
my_data = {'a': [1, 2.0, 3, 4 + 6j],
           'b': ('string', u'Unicode string'),
           'c': None}
# 生成数据
my_data = np.arange(200).reshape((4, 5, 10))
output = open('data.pkl', 'wb')

# 写入到文件
pickle.dump(my_data, output)
output.close()

pkl_file = open('data.pkl', 'rb')

# 从文件中读取
data = pickle.load(pkl_file)
pkl_file.close()

print(data)

assert my_data.shape == data.shape
assert np.all(my_data == data)

参考

https://stackoverflow.com/questions/3685265/how-to-write-a-multidimensional-array-to-a-text-file

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值