ad

从《Python数据分析案例教程》中_领悟数据和Python的魅力_3.4 NumPy 数据文件的读写

admin 58 2023-10-25

【摘要】 本书摘自《Python数据分析案例教程》一书中第3章,第4节,由万念斌、肖伟东、叶丰标编著。

3.4 NumPy 数据文件的读写

在包含大量数据的情况下进行数据分析,NumPy 需要读写磁盘上的文本数据或二进制 数据。 NumPy 为 ndarray 对象引入了扩展名为.npy 的文件,用于存储重建 ndarray 所需的 数据、图形、dtype 和其他信息。 NumPy 常见的数据读写函数有 load()、save()、loadtxt()、 savetxt()、savez()等。 load()和 save()函数读写文件数组数据以未压缩的原始二进制格式 保存在扩展名为.npy 的文件中。 loadtxt()和 savetxt() 函数用于读写文本文件(如.txt)。 savez()函数用于将多个数组写入文件中,默认情况下,数组以未压缩的原始二进制格式保 存在扩展名为.npz 的文件中。

3.4.1 二进制文件的读写

NumPy 的 load()函数用于从二进制文件中读取数据,save()函数用于将数据写入二进 制文件中。 load()函数的原型为:

从《Python数据分析案例教程》中_领悟数据和Python的魅力_3.4 NumPy 数据文件的读写

numpy.load(file, mmap mode =None,allow pickle =True,fix imports = True, encoding='ASCII')

函数参数的作用如下:

(1)file:要读取的文件。

(2)mmap mode: 内存映射模式,值为{None,'r+','r','w+','c'},默认值为 None。

(3)allow pickle:可选项,布尔值,默认值为 True。allow pickle=True 表示允许使用 Python pickles 保存对象数组。 Python 中的 pickle 用于在保存到磁盘文件或从磁盘文件读 取之前对对象进行系列化和反系列化。 allow pickle=False 表示不允许使用 pickle,加载对 象数组失败。

(4)fix imports:可选项,布尔值,默认值为 True。fix imports=True 表示 Python2 中 读取 Python3 保存的数据。

(5)encoding:编码,值可以是'latinl'、'ascii'、'bytes',默认值是'ascii'。 save()函数的原型为:

numpy.save(file,arr,allow pickle=True,fix imports=True)

函数参数的作用如下:

参数 file表示要读取或写入的二进制文件,扩展名为.npy,如果文件没有指定扩展名, 系统会自动加上.npy;参数 arr表示读取或写入的数据数组;参数 allow pickle为可选项,布 尔值,allow pickle=True表示允许使用Python pickles保存对象数组;参数 fix imports为 可选项,布尔值,fix imports=True 表示 Python2 中读取 Python3保存的数据。

【案例3-13】将 1,2,3,…,8,9这些数据写入 tempnpy.npy 文件中,然后从该文件中读 出数据并显示。程序代码如下:

#encoding:utf-8

import numpy as np

import os

def main():

os.getcwd()#获取当前工作路径

#写入 npy文件

np.save('tempnpy',np.array([[1,2,3],[4,5,6],[7,8,9]]))

#读取 tempnpy.npy文件的内容

data=np.load('tempnpy.npy')

print(data)

#以只读模式读取 tempnpy.npy文件的内容

X=np.load('tempnpy.npy',mmap mode='r')

print(X[1,:])

if name ==" main ":

__ __ _ __

main()

程序运行结果如下:

D:\anaconda\python.exe C:/Users/dell/PycharmProjects/My01/编写教材案例源代码 /3Numpy/AL3-13Numpy 读写二进制文件.py

[[ 1 [4 [7 [4

2

5

8

5

3]

6]

9]]

6]

Process finished with exit code 0

【案例3-14】将多个数组文件写入 tempnpz.npz 文件中,然后从该文件中读出数据并显 示各个数组。程序代码如下:

#encoding:utf-8

import numpy as np

import os

def main():

os.getcwd()#获取当前工作路径

arrl=np.array([[1,2,3],[4,5,6],[7,8,9]])

arr2=np.array(['china','xiamen'])

#将多个数组写入 npz 文件

np.savez('tempnpz.npz',a=arrl,b=arr2)

#读取 tempnpz.npz文件的内容

data=np.load('tempnpz.npz')

printC'arr1 数组'.center(30,'—'),\n',data['a'])

printC'arr2数组'.center(30,'-'),\n',data['b'])

if .name ==" main ":

_ __ __ __

main()

程序运行结果如下:

D:\anaconda\python.exe C:/Users/dell/PycharmProjects/My01/编写教材案例源代码 /3Numpy/AL3-14将多个数组写入 npz文件中.py

-arr1 数组-

[[ 1 2 3]

[ 4 5 6]

[ 7 8 9]]

-arr2 数组------------

['china''xiamen']

Process finished with exit code 0

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《认知计算与深度学习》_基于物联网云平台的智能应用_2.2 虚拟机和Docker容器的创建
下一篇:《给所有人的Python》_第四版_也是给你的一本知识宝典_2.3.2 字符串的连接
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×