读/写文件

NumPy的文件读/写主要有二进制的文件读/写和文件列表形式的数据读/写两种形式。学会读/写文件是利用NumPy进行数据处理的基础。NumPy提供了若干函数,可以把结果保存到二进制或文本文件中。除此之外,NumPy还提供了许多从文件读取数据并将其转换为数组的方法。

1. 二进制文件读/写

1.1 save函数:将一个numpy数组保存为二进制文件

save函数以二进制的格式保存数据。

save函数的语法格式为:numpy.save(file, arr, allow_pickle=True, fix_imports=True)
其中参数file 为要保存的文件的名称,需要指定文件保存的路径,如果未设置,则保存到默认路径下面;参数arr为需要保存的数组。简而言之,就是把数组arr保存至名称为“file”的文件中,其文件的扩展名.npy是系统自动添加的。

案例:将一个数组保存为二进制文件
import numpy as np  #导入NumPy库
arr = np.arange(100).reshape(10,10)  #创建一个数组
np.save("../save_arr",arr)  #保存数组
print('保存的数组为:\n',arr)
保存的数组为:[[ 0  1  2  3  4  5  6  7  8  9][10 11 12 13 14 15 16 17 18 19][20 21 22 23 24 25 26 27 28 29][30 31 32 33 34 35 36 37 38 39][40 41 42 43 44 45 46 47 48 49][50 51 52 53 54 55 56 57 58 59][60 61 62 63 64 65 66 67 68 69][70 71 72 73 74 75 76 77 78 79][80 81 82 83 84 85 86 87 88 89][90 91 92 93 94 95 96 97 98 99]]

注意:保存路径中的目录一定要存在!save函数不会自动创建目录。

1.2 savez函数:将多个numpy数组保存为二进制文件

如果将多个数组保存到一个文件中,可以使用savez函数,其文件的扩展名为.npz

savez函数的语法格式为:numpy.savez(file, *args, **kwds)
其中:

  • file:要保存的文件,扩展名为.npz,如果文件路径末尾没有扩展名.npz,该扩展名会被自动加上。
  • args: 要保存的数组,可以使用关键字参数为数组起一个名字,非关键字参数传递的数组会自动起名为 arr_0, arr_1, … 。
  • kwds: 要保存的数组使用关键字名称。
案例:将多个数组保存为二进制文件
arr1 = np.array([[1,2,3],[4,5,6]])
arr2 = np.arange(0,1.0,0.1)
np.savez('../savez_arr',arr1,arr2)
print('保存的数组1为:',arr1)
print('保存的数组2为:',arr2)
保存的数组1为: [[1 2 3][4 5 6]]
保存的数组2为: [0.  0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]

1.3 load函数:读取二进制文件

需要读取二进制文件的时候可以使用load函数,用文件名作为参数。

load函数的格式为:numpy.load(file, mmap_mode=None, allow_pickle=True, fix_imports=True, encoding=’ASCII’)

npy文件读取的结果为numpy数组对象ndarray
npz文件读取的结果为类字典对象,如果在savez函数中未指定键时,自动使用 arr_0, arr_1, …等键名称。

案例:读取.npy格式二进制文件
loaded_data = np.load("../save_arr.npy")  #读取含有单个数组的文件
print('读取的数组为:\n',loaded_data)
读取的数组为:[[ 0  1  2  3  4  5  6  7  8  9][10 11 12 13 14 15 16 17 18 19][20 21 22 23 24 25 26 27 28 29][30 31 32 33 34 35 36 37 38 39][40 41 42 43 44 45 46 47 48 49][50 51 52 53 54 55 56 57 58 59][60 61 62 63 64 65 66 67 68 69][70 71 72 73 74 75 76 77 78 79][80 81 82 83 84 85 86 87 88 89][90 91 92 93 94 95 96 97 98 99]]
案例:读取.npz格式二进制文件
loaded_data1 = np.load("../savez_arr.npz")  #读取含有多个数组的文件
print('读取的数组1为:',loaded_data1['arr_0'])
print('读取的数组2为:',loaded_data1['arr_1'])
读取的数组1为: [[1 2 3][4 5 6]]
读取的数组2为: [0.  0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]

注意!存储时可以省略扩展名,但读取时不能省略扩展名。

2. 文本文件读/写

在实际的数据分析任务中,更多地使用文本格式的数据,如TXTCSV格式,因此经常使用savetxt函数、loadtxt函数、genfromtxt函数执行对文本格式数据的读取任务。

2.1 savetxt函数:读取二进制文件

savetxt函数可将数组写到以某种分隔符隔开的文本文件中,语法格式如下。

np.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='\n',header='',footer='', comments='# ')
其中第一个参数是文件名fname,第二个参数X为数组数据,第四个参数为数据分隔符delimiter

案例:将数组保存为文本文件
arr = np.arange(0,12,0.5).reshape(4,-1)
print('创建的数组为:',arr)#fmt ="%d"为指定保存为整数
np.savetxt("../arr.txt", arr, fmt="%d", delimiter=",")
创建的数组为: [[ 0.   0.5  1.   1.5  2.   2.5][ 3.   3.5  4.   4.5  5.   5.5][ 6.   6.5  7.   7.5  8.   8.5][ 9.   9.5 10.  10.5 11.  11.5]]

2.3 loadtxt函数:读取二进制文件

loadtxt函数执行的是savetxt函数相反的操作,即把文件加载到一个二维数组中。

loadtxt函数的格式为:numpy.loadtxt(FILENAME, dtype=int, delimiter=' ')
其中参数delimiter可以指定各种分隔符、针对特定列的转换器函数、需要跳过的行数等。

案例:读取文本文件
arr = np.arange(0,12,0.5).reshape(4,-1)
print('创建的数组为:',arr)#fmt ="%d"为指定保存为整数
np.savetxt("../arr.txt", arr, fmt="%d", delimiter=",")
#读入的时候也需要指定逗号分隔
loaded_data = np.loadtxt("../arr.txt",delimiter=",")
print('读取的数组为:',loaded_data)
创建的数组为: [[ 0.   0.5  1.   1.5  2.   2.5][ 3.   3.5  4.   4.5  5.   5.5][ 6.   6.5  7.   7.5  8.   8.5][ 9.   9.5 10.  10.5 11.  11.5]]
读取的数组为: [[ 0.  0.  1.  1.  2.  2.][ 3.  3.  4.  4.  5.  5.][ 6.  6.  7.  7.  8.  8.][ 9.  9. 10. 10. 11. 11.]]

2.3 genfromtxt函数:读取二进制文件

genfromtxt函数和loadtxt函数相似,不过它面向的是结构化数组和缺失数据。它通常使用的参数有3个,即存放数据的文件名参数fname、用于分隔的字符参数delimiter和是否含有列标题参数names

案例:读取文本文件
loaded_data = np.genfromtxt("../arr.txt", delimiter = ",")
print('读取的数组为:',loaded_data)
读取的数组为: [[ 0.  0.  1.  1.  2.  2.][ 3.  3.  4.  4.  5.  5.][ 6.  6.  7.  7.  8.  8.][ 9.  9. 10. 10. 11. 11.]]

输出的结果是一组结构化的数据(结构化数组可以用 dtype选项指定一系列用逗号隔开的说明符,指明构成结构体的元素以及它们的数据类型和顺序),数据从第二行开始。因为names参数默认第一行为数据的列名,所以数据从第二行开始。

Numpy简易教程7——读/写文件相关推荐

  1. android otg读写文件,Android USB Host在USB设备OTG中读/写文件

    我正在编写Android设备是主机的应用程序.用户将USB驱动器连接到Android设备,我的应用程序将在USB驱动器中写入一些文本文件.文本文件的路径就像USB_DRIVE/Data/APP_NAM ...

  2. Numpy简易教程——图像的数组表示

    Numpy简易教程--图像的数组表示 文章目录 Numpy简易教程--图像的数组表示 一.图像的表示模式 二.PIL库的使用 1.PIL库简介与下载,导入 2.图像的数组表示 3.图像的变换 下一篇: ...

  3. android 字节流读取,使用字节流读/写文件

    Java 的 I/O 流提供了一条通道,这条通道可以把数据送给目的地.输入流的指向称作源,程序从指向源的输入流中读取源中的数据.输出流的指向是数据要去的目的地,程序通过向输出流中写入数据把信息传递到目 ...

  4. 文本文件写java_Java 读/写文件文本文件的示例

    /* * 简单的读/写文本文件的示例 * 这里包含了三个例子,即 * 1. 将文件读入到内存(这里是StringBuffer)的例子 * 2. 将内容中的文本写到文件 * 3. 将一个文件的内容读出来 ...

  5. mysql读/写文件操作

    参考: https://blog.csdn.net/slip_666/article/details/79050454 1.通过load_file()函数将文件内容爆出来 前提条件 当前权限对该文件可 ...

  6. python 读/写文件操作

    python中也提供类似于C语言中的open.read.write函数,下面是我根据看过的内容的一个python读.写文件的代码段: //读文件 //在python的执行文件夹中新建一个"1 ...

  7. Java中 读-写 文件 BufferedReader BufferedWriter

    本篇文章,为大家带来Java中进行文件读写的一种方式. 我的文件目录: /Users/gisboy/Desktop/a.txt Java中,用java.io.BufferedReader 进行文件内容 ...

  8. PYTHON文件操作(读/写文件)

    模板先行,介绍在后面 with open("ce.txt",encoding='utf-8') as file:# text = file.read()while True:#获取 ...

  9. Numpy简易教程8——简易分析

    使用函数进行简单的统计分析 1.排序 NumPy的排序方式主要可以概括为直接排序和间接排序两种. 直接排序指对数值直接进行排序. 间接排序是指根据一个或多个键对数据集进行排序. 在NumPy中,直接排 ...

最新文章

  1. 7.3 rpm工具用法
  2. c#与科学计算之一:发掘 C# 特性赋予科学计算项目以威力(转贴)
  3. rosdep init和rosdep update出错处理
  4. 腾讯容器云平台GaiaStack亮相kubeCon
  5. c枚举类型enum例题_SystemVerilog数据类型
  6. python内置输入函数_python内置函数 print()
  7. 虚拟机查看cpu型号_CentOS7安装KVM虚拟机
  8. socket与TCP/UDP编程-转
  9. 标段模板、审批流程模板
  10. qq空间说说获取php,【点赞源码】QQ空间自动评论说说PHP源码
  11. 下一步工作应该怎样开展
  12. 操作系统 面试问题_操作系统面试问答
  13. 【NFC】手机手环模拟门禁卡
  14. tcl网络电视android无法启动,tcl智能电视系统升级和刷机常见问题解答
  15. Macbook电池出现“建议维修”的解决办法
  16. 显示前半内容后半内容用省略号_德语 OCR
  17. oracle ssh 连接工具,使用免费的Oracle云服务-通过console连接云主机
  18. 一首洗脱人们灵魂最深处的完美音符
  19. 项目或WBS元素结算规则设置和实操-CJ20N/CJ02/CJ88/CJI3
  20. 错误代码:0x800F081f

热门文章

  1. java double 占位符_Java输出格式化之占位符
  2. 阿里测试工程师聊:软件测试需要学什么?
  3. 中文乱码——编码问题
  4. 千氪财经|2018 上半年币圈漏洞与攻击盘点
  5. OA系统如何实现实时项目成本核算
  6. 猪皮做成眼角膜为盲人恢复视力,不用等人捐献了
  7. GSAP,专业的Web动画库
  8. 双软企业的税收优惠政策怎么样?
  9. 用计算机计算下面各题,四下计算机练习题汇总
  10. main函数的argc与arg