发布时间:2023-01-25 18:30
转处:http://blog.csdn.net/pipisorry/article/details/39088003
NumPy提供了多种文件操作函数方便我们存取数组内容。
文件存取的格式:二进制和文本。二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型。
load(file[, mmap_mode, allow_pickle, ...]) | Load arrays or pickled objects from .npy, .npz or pickled files. |
save(file, arr[, allow_pickle, fix_imports]) | Save an array to a binary file in NumPy .npy format. |
savez(file, *args, **kwds) | Save several arrays into a single file in uncompressed .npz format. |
savez_compressed(file, *args, **kwds) | Save several arrays into a single file in compressed .npz format. |
The format of these binary file types is documented inhttp://docs.scipy.org/doc/numpy/neps/npy-format.html
以NumPy专用的二进制类型保存数据,这两个函数会自动处理元素类型和shape等信息,使用它们读写数组就方便多了,但是numpy.save输出的文件很难和其它语言编写的程序读入:
>>> np.save("a.npy", a) >>> c = np.load( "a.npy" ) >>> c array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])
Note:
1. 文件要保存为.npy文件类型,否则会出错
2. 保存为numpy专用二进制格式后,就不能用notepad++打开(乱码)看了,这是相对tofile内建函数不好的一点
如果你想将多个数组保存到一个文件中的话,可以使用numpy.savez函数。savez函数的第一个参数是文件名,其后的参数都是需要保存的数组,也可以使用关键字参数为数组起一个名字,非关键字参数传递的数组会自动起名为arr_0, arr_1, ...。savez函数输出的是一个压缩文件(扩展名为npz),其中每个文件都是一个save函数保存的npy文件,文件名对应于数组名。load函数自动识别npz文件,并且返回一个类似于字典的对象,可以通过数组名作为关键字获取数组的内容:
>>> a = np.array([[1,2,3],[4,5,6]]) >>> b = np.arange(0, 1.0, 0.1) >>> c = np.sin(b) >>> np.savez("result.npz", a, b, sin_array = c) >>> r = np.load("result.npz") >>> r["arr_0"] # 数组a array([[1, 2, 3], [4, 5, 6]]) >>> r["arr_1"] # 数组b array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]) >>> r["sin_array"] # 数组c array([ 0. , 0.09983342, 0.19866933, 0.29552021, 0.38941834, 0.47942554, 0.56464247, 0.64421769, 0.71735609, 0.78332691])
如果你用解压软件打开result.npz文件的话,会发现其中有三个文件:arr_0.npy, arr_1.npy, sin_array.npy,其中分别保存着数组a, b, c的内容。按照二维数组的存取方式存储:
(2022.4)Win10最新Anaconda安装Pytorch GPU环境(CUDA)教程(极其适合初学者)
python 人像素描_谁说程序员不懂浪漫的,直接用 Python 给女朋友画张素描
CloudBees CI使用Velero进行灾备(DR)概念验证
遵循gpl协议 采用jar包_中国 GPL 诉讼第一案:关于 GPL 问题的探讨 | Linux 中国
精度96.63%、FPS 63,SOTA人像分割方案PP-HumanSeg v2开箱即用!
XGBoost、LightGBM与CatBoost算法对比与调参
瑞德西韦成为首个获美国FDA批准新冠药物;蚂蚁集团与马来西亚最大货币服务运营商之一建立合作伙伴关系 | 美通企业日报...
win10系统实现+yolov5训练自己的数据集--安全帽检测
买二手房的朋友注意了,民法典实施后,被抵押的房子也可以直接过户了 - 知乎
使用 Nocalhost 开发 Rainbond 上的微服务应用
【论文翻译 KDD2020】AM-GCN: Adaptive Multi-channel Graph Convolutional Networks 自适应多通道图卷积网络