numpy读取txt文件
通常情况下,数据是以文件形式存储的。常用的存储文件的格式有文本文件、CSV 格式文件、二进制格式文件和多维数据文件等。其中 CSV(Comma-Separated Value,逗号分隔值)格式是一种常见的文件格式。通常,数据库的转存文件就是 CSV 格式的,文件中的各个字段对应于数据库表中的列。众所周知,电子表格软件(如Microsoft Excel)可以处理 CSV 文件。
在数据分析中,经常需要从文件中读取数据或将数据写入文件,因此,学会读写文件操作是深入学习 NumPy 的基础。下面将分别介绍如何使用 NumPy 函数来读写一维或二维数组的文本文件、CSV 格式文件、二进制格式文件和多维数据文件。
使用 NumPy 读写文本文件
在 NumPy 中,loadtxt() 和 savetxt() 函数可以对文件后缀名为 .txt 和 .csv 的文件进行读写操作。
1. 将一维或二维数组写入 TXT 文件或 CSV 格式文件
在 NumPy 中,使用 savetxt() 函数可以将一维或二维数组写入后缀名为 .txt 或 .csv 的文件,该函数的格式如下:
numpy.savetxt(fname,array,fmt=’%.18e’,delimiter=None,newline=’\n’, header=’’, footer=’’, comments=’#’, encoding=None)
函数中参数说明如下:
fname:文件、字符串或产生器,可以是 .gz 或 .bz2 的压缩文件;
array:存入文件的数组(一维数组或者二维数组);
fmt:写入文件的格式,例如:%d,%.2f,%.18e,默认值是%.18e;
delimiter:分割符,默认是空格;
newline:换行符;
header:在文件开头写入的字符串;
footer:在文件末尾写入的字符串;
comments:为添加到页眉和页脚的字符串标记注释符,默认值为#;
encoding:设置输出文件的编码。如果编码不是 bytes 或 latin1,将无法在 NumPy 1.14 以下版本中加载该文件,默认为 latin1。
其中,newline 参数是 NumPy 1.5.0 版本中的新功能,header、footer、comments 参数是 NumPy 1.7.0 版本中的新功能,encoding 参数是 NumPy 1.14.0 版本中的新功能。这 5 个参数都是可选项。
【例 1】创建一个元素范围为 0~11 的 3 行 4 列的数组,然后设置不同的参数,将该数组写入 TXT 文件和 CSV 文件。代码如下。
-- coding: utf-8 --
import numpy as np
arr = np.arange(12).reshape(3,4)
#fmt默认取%.18e(浮点数),分割符默认是空格,写入文件保存在当前目录
np.savetxt(‘test1.txt’,arr)
#写入文件的是十进制整数
np.savetxt(‘test2.txt’,arr,fmt=’%d’,delimiter=’,’)
#在test3.txt文件头部和尾部都加#test3注释,写入的文件是字符串
np.savetxt(‘test3.txt’,arr,fmt=’%s’,delimiter=’,’,header=‘test3’,footer=‘test3’)
#在test4.txt文件头部加##test4注释
np.savetxt(‘test4.txt’,arr,fmt=’%d’,delimiter=’,’,header=‘test4’,comments=’##’)
#将arr数组保存为CSV文件
np.savetxt(‘test.csv’,arr,fmt=’%d’,delimiter=’,’,header=‘test’)
2. 读取 TXT 文件和 CSV 格式文件
在 NumPy 中,读取 TXT 文件和 CSV 格式文件的函数是 loadtxt(),该函数格式如下:
numpy.loadtxt(fname,dtype=,comments=’#’,delimiter=None,convert
ers=None,skiprows=0,usecols=None,unpack=False,ndmin=0,encoding='byte
函数中参数说明如下:
fname:文件、字符串或产生器,可以是 .gz 或 .bz2 为扩展名的压缩文件;
dtype:数据类型;
delimiter:分割符,默认是空格;
usecols:选取数据的列;
unpack:如果 True,读入属性将分别写入不同变量;
comments:注释符,默认值为 #;
converters:转换器,数据列和转换函数之间进行映射的字典;
skiprows:跳过第一行的行数,默认值为 0;
ndmin:返回的数组至少具有ndmin维度。值为 0(默认值)、1 或 2;
encoding:用于解码输入文件的编码,默认为 bytes。
其中,除了 fname 参数外,其余参数为可选项。
【例 2】利用 NumPy 函数实现读取 TXT 文件和 CSV 格式文件的操作。
① 将上面中所创建的 test1.txt、test2.txt、test3.txt、test4.txt 和 test.csv文件的数据读取并保存到数组中。
② 创建学生通讯录的 CSV 文件,该文件中包含学生姓名、电话和 E-mail,并将其保存为 phone.csv 文件,然后从该文件中读取数据并保存到数组中。其中,学生通讯录 CSV 格式文件(列表形式,两值之间用逗号隔开)的数据如下。
id,name,tel,email
1,李明,13873321234,liming@163.com
2,王红,13656722231,wanghong@163.com
3,张艳,18534512367,zhangyan@sina.com
其代码如下。
-- coding: utf-8 --
import numpy as np
#从test1.txt文件中读取数据
arr1 = np.loadtxt(‘test1.txt’)
print(arr1)
#从test2.txt文件中读取数据
arr2 = np.loadtxt(‘test2.txt’,delimiter=’,’)
#从test3.txt文件中读取数据
arr3 = np.loadtxt(‘test3.txt’,dtype=np.int32,delimiter=’,’)
#从test4.txt文件中读取数据
arr4 = np.loadtxt(‘test4.txt’,delimiter=’,’)
print(arr2,arr3,arr4)
#从csv文件中读取数据
arr5 = np.loadtxt(‘test.csv’,delimiter=’,’)
arr6 = np.loadtxt(‘phone.csv’,dtype=np.str,delimiter=’,’)
print(arr5,arr6)
使用 NumPy 读写二进制格式文件
在 NumPy 中,load() 和 save() 函数是专门用于读写二进制格式文件的,它们具有自动处理数组元素类型和形状的功能。savez() 函数能提供将多个数组存储至一个文件的能力,save() 函数保存之后后缀名为 npy,savez() 函数保存之后后缀名 .npz。
使用解压程序打开 npz 文件可以看到里面是若干个以“数组名称”命名的 NPY 格式的文件,数组名称默认为“arr_数字”的形式,在 savez() 函数中可以通过指明函数的参数名称来命名数组。
1. 使用 save() 或 savez() 函数写二进制格式文件
save() 或 savez() 函数的格式如下:
numpy.save(file,array) 或 numpy.savez(file,array)
函数中参数说明如下:
file:文件名,以 .npy 为扩展名,压缩扩展名为 .npz;
array:数组变量。
2. 使用 load() 函数读取二进制格式文件
load() 函数的格式如下:
numpy.load(file)
其中,file 为文件名,以 .npy 为扩展名,压缩扩展名为 .npz。
load()、save() 和 savez() 函数的示例代码 example1 如下。
-- coding: utf-8 --
import numpy as np
#load和save函数的示例代码
arr1 = np.arange(30).reshape(3,5,2)
np.save(‘arr1.npy’,arr1)
arr_a = np.load(‘arr1.npy’)
print(arr_a)
#load和savez函数的示例代码
arr2 = np.arange(20).reshape(4,5)
np.savez(‘arr2.npz’,arr1,arr2)
arr_b = np.load(‘arr2.npz’)
print(arr_b)
使用 NumPy 读写多维数据文件
在 NumPy 中,tofile() 和 fromfile() 函数可用于读写多维数据文件。
1. 使用 tofile() 函数写入多维数据文件
tofile() 函数的格式如下:
数组名.tofile(fid, sep=’’, format=’%s’)
函数中的参数说明如下:
fid:文件、字符串;
sep:数据分割符,如果是空串,写入文件为二进制,即默认为空串;
format:写入数据的格式。
- 使用 fromfile() 函数读取多维数据文件
fromfile() 函数的格式如下:
numpy.fromfile(file,dtype=float,count=‐1,sep=’’)
函数中的参数说明如下:
file:文件、字符串;
dtype:读取的数据类型。读取数据的时候都需要指定数据类型,默认为浮点型;
count:读入元素个数,-1 表示读入整个文件;
sep:数据分割符,如果是空串,写入文件为二进制形式。
tofile() 和 fromfile() 函数的示例代码 example2 如下。
-- coding: utf-8 --
import numpy as np
#tofile和fromfile函数的示例代码
arr1 = np.arange(30).reshape(3,5,2)
arr1.tofile(‘arr.dat’,sep=’,’,format=’%d’)
arr = np.fromfile(‘arr.dat’,dtype=np.int32,sep=’,’).reshape((5,3,
print(arr)
numpy读取txt文件相关推荐
- load python txt文件_详解Python中numpy.loadtxt()读取txt文件
为了方便使用和记忆,有时候我们会把 numpy.loadtxt() 缩写成np.loadtxt() ,本篇文章主要讲解用它来读取txt文件. 读取txt文件我们通常使用 numpy 中的 loadtx ...
- python读取txt文件并画图
1,使用python读取txt文件 已知txt文件内容如下: 0 01 12 43 94 165 256 36 请以第一列为x轴,第二列为y轴画图 步骤如下: 1)使用readlines读取文件 2) ...
- python读取txt文件写入-Python读写txt文本文件的操作方法全解析
一.文件的打开和创建 >>> f = open('/tmp/test.txt') >>> f.read() 'hello python! hello world! ...
- python导入txt为dataframe-python批量读取txt文件为DataFrame的方法
我们有时候会批量处理同一个文件夹下的文件,并且希望读取到一个文件里面便于我们计算操作.比方我有下图一系列的txt文件,我该如何把它们写入一个txt文件中并且读取为DataFrame格式呢? 首先我们要 ...
- python读取整个txt文件-python怎么读取txt文件内容
读取文件: 步骤:打开 -- 读取 -- 关闭>>> f = open('/tmp/test.txt') >>> f.read() 'hello python! h ...
- python导入txt文件并绘图-Python实现读取txt文件并画三维图简单代码示例
记忆力差的孩子得勤做笔记! 刚接触python,最近又需要画一个三维图,然后就找了一大堆资料,看的人头昏脑胀的,今天终于解决了!好了,废话不多说,直接上代码! #由三个一维坐标画三维散点 #codin ...
- python读取txt文件代码-Python实现读取txt文件并画三维图简单代码示例
记忆力差的孩子得勤做笔记! 刚接触python,最近又需要画一个三维图,然后就找了一大堆资料,看的人头昏脑胀的,今天终于解决了!好了,废话不多说,直接上代码! #由三个一维坐标画三维散点 #codin ...
- python怎么读取txt文件-python怎么读取txt文件内容
读取文件: 步骤:打开 -- 读取 -- 关闭>>> f = open('/tmp/test.txt') >>> f.read() 'hello python! h ...
- python怎么分行读取txt文件_python怎么读取txt文件内容
详细内容 读取文件: 步骤:打开 -- 读取 -- 关闭>>> f = open('/tmp/test.txt') >>> f.read() 'hello pyth ...
- Python中读取txt文件的三种可行办法
DataTest.txt中的文件内容,文件最后尽量不要留空行,否则有的时候会出现error 1,2,3 4,5,6 7,8,9 第一种方式:使用 csv.reader()读取txt文件 import ...
最新文章
- C语言通路寻找,用C语言解决迷宫问题设计与寻找通路问题.pdf
- 长庆企业信息化管理课件_详解:企业信息化管理系统,不能马虎对待
- 八十、 Springboot整合异步任务和定时任务
- 禁止复制粘贴_网页禁止复制粘贴? 教你5招, 绕过网页限制, 免费复制全网内容!...
- SaaS CRM系统存在的五大安全漏洞
- 2019无盘游戏服务器128g内存,云更新无盘客户端 v2019.8.15.12486官方版
- pycharm 修改默认的注释风格(reStructuredText风格、Google风格、Numpy风格)
- js中filter函数
- 不在更改国内网络账号的ID了
- 基于鱼群算法的函数寻优
- DVP MIPI-CSI 摄像头接口的区别
- c#获取软件版本、windows用户名、windows用户目录、.net版本、windows版本等
- 计算机的硬盘有几个分区,电脑硬盘分几个区合适?电脑硬盘分区小窍门
- 带轮轮毂长度l和带轮宽b表_V带轮宽度怎么计算?知道是A型带,带数为6,轮缘宽、轮彀孔径与长度怎么计算?顺求公式...
- Noi 十连测 Zbox loves meizi
- Social LSTM全文翻译
- 系统默认进程参考与对比
- sina\tent微博分享
- 十、C#接口、抽象、密封、开放封闭原则
- Python + Selenium实现web端的UI自动化
热门文章
- Redis反序列化错误Could not read JSON: Cannot construct instance of `java.util.ArrayList$SubList`
- Docker下载安装
- Unity中屏幕坐标、视口坐标和世界坐标、局部坐标与其之间的相互转换
- YUV格式与RGB格式
- Modbus_TCP 报文格式解析
- 百度地图行政区划遮罩+描点+信息窗demo
- centos7镜像文件
- CAS5.3版本对接Jenkins单点登录
- 高斯核原理详解+生成高斯核的Python代码
- jquery表单的提交