美文网首页《利用Python进行数据分析》 第二版
《利用Python进行数据分析》 附录 A.8 高阶数组输入和输

《利用Python进行数据分析》 附录 A.8 高阶数组输入和输

作者: CCC考研 | 来源:发表于2019-01-09 14:36 被阅读3次

附录A 高阶Numpy


A.8 高阶数组输入和输出

       在第4章中,我们熟悉了np.save和np.load,它们用于在磁盘上以二进制格式存储数组。对于更复杂的使用,还有许多其他选项需要考虑。特别是,内存映射有额外的好处,允许你处理不适合进入内存的数据集。


A.8.1 内存映射文件

       内存映射文件是一种与磁盘上的二进制数据交互的方法,就像它是存储在内存数组中一样。NumPy实现了一个memmap对象,它是ndarray型的,允许对大型文件以小堆栈的方式进行读取和写入,而无须将整个数组载入内存。此外,memmap还有和内存数组相同的方法,因此可以替代很多算法中原本要填入的ndarray。

1.要创建一个新的内存映射,使用np.memmap并传入文件路径、dtype、shape和文件模式(见图A-1)

图A-1:使用np.memmap传入文件内容

2.每当内存映射超出范围并且被垃圾收集时,任何更改都将刷新到磁盘。打开已经存在的内存映射时,你仍然必须指定dtype和shape,因为该文件只是磁盘上没有元数据的二进制数据块(见图A-2)

图A-2:打开已存在的内存映射


:内存映射也适用于结构化或嵌套的dtype,如前一节所述


A.8.2 HDF5和其他数组存储选择

       PyTablesh5py是两个为NumPy提供友好接口的Python项目,用于以高效和可压缩的HDF5格式存储数组数据(HDF代表分层数据格式,Hierarchical Data Format)。

       你可以安全地以HDF5格式存储数百GB或甚至上TB的数据。要了解有关在Python中使用HDF5的更多信息,我建议阅读pandas官方在线文档(http://pandas.pydata.org)。


相关文章

网友评论

    本文标题:《利用Python进行数据分析》 附录 A.8 高阶数组输入和输

    本文链接:https://www.haomeiwen.com/subject/cmvwkqtx.html