关于python库数组文件的输入输出

阿里云2000元红包!本站用户参与享受九折优惠!

Numpy能够读写磁盘上的文本数据或者二进制数据。这里只讨论numpy的内置二进制格式,因为更多的用户会使用pandas或其他工具来加载文本或者表格数据。
np.savenp.load函数是读取磁盘数组数据的两个主要函数。默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为.npy的文件中的:

In [213]: arr = np.arange(10)
In [214]: np.save('some_array', arr)

可以看到,文件路径末尾没有扩展名.npy也没有关系,最后保存的时候扩展名会被自动加上。保存就是为了以后读取的(不是用来删着玩的),然后就可以用np.load读取磁盘上的数组了:

In [215]: np.load('some_array.npy')
Out[215]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

通过np.savez可以将多个数组保存到一个未压缩文件中(这里的后缀为.npz),将数组以关键字参数的形式传入即可:

In [216]: np.savez('array_archive.npz', a=arr, b=arr)

加载.npz文件时,你会得到一个类似字典的对象,该对象会对各个数组进行延迟加载:

In [217]: arch = np.load('array_archive.npz')
In [218]: arch['b']
Out[218]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

延迟加载是什么意思?
延迟加载(lazyload)又称懒加载,类似随用随取的意思,当需要使用的时候再加载出来。现在许多网页、app也采用懒加载的形式,只有当scroll滚动条滑动到指定位置,才对某些占资源的文件如图片进行加载。

如果要将数据压缩,可以使用numpy.savez_compressed

In [219]: np.savez_compressed('arrays_compressed.npz', a=arr, b=arr)

更新完毕,哈哈~哈

文章代码引用自:《利用Python进行数据分析·第2版》第4章 NumPy基础:数组和矢量计算
作者:SeanCheney
感谢SeanCheney同意引用。

https://www.jianshu.com/p/dfe9ea3ec457

Python量化投资网携手4326手游为资深游戏玩家推荐:《《剑网3:指尖江湖》:指尖江湖有亲友和没亲友差距多大?底价玄晶3月全员橙武,社交游戏玩出花

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
Python
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论