Numpy数组的保存与加载

数组的保存与加载

import numpy as np

arr = np.arange(16).reshape((4, 4))
print('arr:\n', arr)

arr1 = np.ones((2, 3), dtype=np.int32)
print('arr1:\n', arr1)

# 将数组以二进制形式、文本形式进行保存
#
# 将单个数组以二进制形式保存
# 参数1:文件路径+名称,此时,可以省略文件后缀名,默认保存为.npy文件
# 参数2:需要保存的数组
# np.save('./data/arr', arr)
# print('保存完毕')

# # 加载.npy文件
# # 参数:文件路径+名称,此时不能省略文件后缀名
# data = np.load('./data/arr.npy')
# # 返回值为 保存的数组
# print('data:\n', data)

# 将多个数组以二进制形式进行保存
# 参数1:文件的路径+名称,此时可以省略文件后缀名,默认会保存为.npz文件
# 参数: 需要保存的数组
# np.savez('./data/arr', arr, arr1)
# print('保存完毕')

# # 加载.npz数据
# # 参数: 文件路径+ 名称,此时,也不能省略文件后缀名
# fp = np.load('./data/arr.npz')
# print('fp:\n', fp)  # <numpy.lib.npyio.NpzFile object at 0x0000000002278F28>
# # 注意:在保存.npz 数据的时候,以k:v的映射进行保存
# # 遍历获取k
# for tmp in fp:
#     print(tmp)
#
# # 通过k 来加载保存的数组
# x = fp['arr_0']
# y = fp['arr_1']
# print('x:\n',x)
# print('y:\n',y)

# 默认给定的key --->arr_0,arr_1,arr_2,.... --->无法区分各个特殊的数组
# 保存.npz的时候,显式指定key来保存.npz文件
# np.savez('./data/arr_key', x=arr, y=arr1)

# # 加载arr_key.npz
# fp = np.load('./data/arr_key.npz')
# print('fp:\n', fp)
# # 通过保存时指定的key来获取指定数组
# x = fp['x']
# y = fp['y']
# print('x:\n', x)
# print('y:\n', y)


# 以文本形式保存数组
# 参数fname:文件路径+名称
# 参数X:数组
# 参数fmt='%.18e' ---默认科学计数法, ---->%d
# 参数delimiter=' '--->分隔符
# np.savetxt(fname='./data/arr.txt', X=arr, fmt='%d', delimiter=',')


# 加载以文本形式保存的数组
# 参数fname:文件路径+名称
# 参数dtype:指定加载出来的数据类型
# 参数delimiter:分隔符
# data = np.loadtxt(fname='./data/arr.txt', dtype=np.int32, delimiter=',')
# print('data:\n',data)

# 可以读取含有缺失值的数据
# 可以通过filling_values参数来给缺失位置填充指定的值
# data = np.genfromtxt(fname='./data/arr.txt', dtype=np.int32, delimiter=',', filling_values=-10)
# print('data:\n', data)



原文地址:https://www.cnblogs.com/duxiangjie/p/15753196.html