python使用NumPy文件的读写操作

一、使用NumPy读写文本文件

在数据分析中,经常需要从文件中读取数据或将数据写入文件,常用的存储文件的格式有文本文件、CSV格式文件、二进制格式文件和多维数据文件等。

1.将1维或2维数组写入TXT文件或CSV格式文件 在NumPy中,使用savetxt()函数可以将1维或2维数组写入后缀名为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: 分隔符,通常情况是str可选
header:将在文件开头写入的字符串
footer:将在文件尾部写入的字符串
comments: 将附加到header和footer字符串的字符串,以将其标记为注释。
默认值:'#' encoding:用于编码输出文件的编码。

import numpy as np
arr = np.arange(12).reshape(3,4)
#fmt缺省取%.18e(浮点数)
#分割符默认是空格,写入文件保存在当前目录
np.savetxt('test-1.txt',arr)
#fmt:%d 写入文件的元素是十进制整数,分割符为逗号",",写入文件保存在当前目录
np.savetxt('test-2.txt',arr,fmt='%d',delimiter=',')
#在test-3.txt文件头部和尾部增加注释,头部 #test-3,尾部 # 数据写入注释,写入文件的元素是字符串
np.savetxt('test-3.txt',arr,fmt='%s',delimiter=',',header=\
  'test-3',footer='测试数据',encoding='utf-8')
#在test-4.txt文件头部加##test-4注释
np.savetxt('test-4.txt',arr,fmt='%f',delimiter=',',header=
  'test-4',comments='###')
#将arr数组保存为csv文件
np.savetxt('test-1.csv',arr,fmt='%d',header='test-1')

2.读取TXT文件和CSV格式文件 在NumPy中,读取TXT文件和CSV格式文件的函数是loadtxt(),函数格式:

numpy.loadtxt(fname,dtype=type'float'>,comments='#',delimiter=None, converters=None,skiprows=0,usecols=None,unpack=False,ndmin=0,encoding=‘bytes')
#参数说明:
fname:被读取的文件名(文件的相对地址或者绝对地址)
dtype:指定读取后数据的数据类型
comments: 跳过文件中指定参数开头的行(即不读取)
delimiter:指定读取文件中数据的分割符
converters: 对读取的数据进行预处理
skiprows:选择跳过的行数
usecols:指定需要读取的列
unpack:选择是否将数据进行向量输出
encoding:对读取的文件进行预编码

a = np.loadtxt('test-1.txt')
#读入当前目录下的文件 test-1.txt
print(a)
[[ 0. 1. 2. 3.]
 [ 4. 5. 6. 7.]
 [ 8. 9. 10. 11.]]
# skiprows:指跳过前1行, 如果设置skiprows=2, 就会跳过前两行,数据类型设置为整型.
a = np.loadtxt('test-1.txt', skiprows=1, dtype=int)
print(a)
[[ 4 5 6 7]
 [ 8 9 10 11]]
# comment, 如果行的开头为#就会跳过该行
a = np.loadtxt('test-4.txt', skiprows=2, comments='#',delimiter=',')
b = np.loadtxt('test-4.txt',comments='#',delimiter=',')
print(a,b,sep='\n')
[[ 4. 5. 6. 7.]
 [ 8. 9. 10. 11.]]
[[ 0. 1. 2. 3.]
 [ 4. 5. 6. 7.]
 [ 8. 9. 10. 11.]]
# usecols:指定读取的列,若读取0,2两列
aa = np.loadtxt('test-3.txt',dtype=int, skiprows=1,delimiter=',',usecols=(0, 2))
#unpack是指会把每一列当成一个向量输出, 而不是合并在一起。
(a, b) = np.loadtxt('test-2.txt', dtype=int, skiprows=1,
   comments='#', delimiter=',',
   usecols=(0, 2), unpack=True)
print(aa,a, b,sep='\n')
[[ 0 2]
 [ 4 6]
 [ 8 10]]
[4 8]
[ 6 10]
#读取csv文件
aa = np.loadtxt('test-1.csv',skiprows=1)
print(aa)
[[ 0. 1. 2. 3.]
 [ 4. 5. 6. 7.]
 [ 8. 9. 10. 11.]]

二、使用NumPy读写二进制文件

1.使用save()或savez()函数写二进制格式文件

save函数将数组以未压缩的原始二进制格式保存在扩展名为.npy的文件中。会自动处理元素类型和形状等信息。
savez函数将多个数组压缩到一个扩展名为npz的文件,其中每个文件都是一个save()保存的npy文件,文件名和数组名相同
save()或savez()函数的格式:

numpy.save(file,array)
numpy.savez(file,array)

2.使用load()函数读取二进制格式文件

load()函数的格式: numpy.load(file)

import numpy as np
a = np.arange(12).reshape(3,4)
print('原数组a:\n',a)
np.save('arr1.npy', a) #将数据存储为npy,保存时可以省略扩展名,默认.npy
c = np.load('arr1.npy') #读取arr1.npy的数据,读取数据时不能省略 .npy
print('读取后的数据:\n',c)

ar = np.arange(6).reshape(3,2) 

print('保存前的数组:',a,ar,sep='\n')
np.savez('arr2.npz',a,ar) #多数组存储,默认文件名.npz
b = np.load('arr2.npz')
print('读取后的数据:')
print(b['arr_0'],b['arr_1'],sep='\n')

原数组a:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
读取后的数据:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
保存前的数组:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[0 1]
[2 3]
[4 5]]
读取后的数据:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[0 1]
[2 3]
[4 5]]

for i in b.items():
 print(i)
('a', array([[ 0, 1, 2, 3],
 [ 4, 5, 6, 7],
 [ 8, 9, 10, 11]]))
('ar', array([[0, 1],
 [2, 3],
 [4, 5]]))

以上就是python使用NumPy文件的读写操作的详细内容,更多关于python使用NumPy读写文件的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python打开文件,将list、numpy数组内容写入txt文件中的方法

    python保存numpy数据: numpy.savetxt("result.txt", numpy_data); 保存list数据: file=open('data.txt','w') file.write(str(list_data)); file.close() 以上这篇Python打开文件,将list.numpy数组内容写入txt文件中的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • python将txt等文件中的数据读为numpy数组的方法

    实际中,很多数据都是存为txt文件.csv文件等,但是在程序中处理的时候numpy数组或列表是最方便的.本文简单介绍读入txt文件以及将之转化为numpy数组或列表的方法. 1 将txt文件读为list并转化为numpy数组 import numpy as np file = open('filename.txt') val_list = file.readlines() lists =[] for string in val_list: string = string.split('\t',3

  • python 读取文件并把矩阵转成numpy的两种方法

    在当前目录下: 方法1: file = open('filename') a =file.read() b =a.split('\n')#使用换行 len(b) #统计有多少行 for i in range(len(b)): b[i] = b[i].split()#使用空格分开 len(b[0])#可以查看第一行有多少列. B[0][311]#可以查看具体某行某列的数 import numpy as np b = np.array(b)#转成numpy形的 type(b) # 输出<输出clas

  • python numpy实现文件存取的示例代码

    NumPy提供了多种存取数组内容的文件操作函数.保存数组数据的文件可以是二进制格式或者文本格式.二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型. 一,tofile()和fromfile() tofile()将数组中的数据以二进制格式写进文件 tofile()输出的数据不保存数组形状和元素类型等信息 fromfile()函数读回数据时需要用户指定元素类型,并对数组的形状进行适当的修改 从上面的例子可以看出,在读入数据时:需要正确设置dtype参数,并修改数组的shape属性才能

  • python使用NumPy文件的读写操作

    一.使用NumPy读写文本文件 在数据分析中,经常需要从文件中读取数据或将数据写入文件,常用的存储文件的格式有文本文件.CSV格式文件.二进制格式文件和多维数据文件等. 1.将1维或2维数组写入TXT文件或CSV格式文件 在NumPy中,使用savetxt()函数可以将1维或2维数组写入后缀名为txt或csv的文件.函数格式为: **numpy.savetxt(fname,array,fmt='%.18e',delimiter=None,newline='\n', header='', foot

  • JSON文件及Python对JSON文件的读写操作

    一,什么是JSON文件 JSON和XML都是互联网上数据交换的主要载体. 在JSON出现之前,大家一直用XML来传递数据.因为XML是一种纯文本格式,所以它适合在网络上交换数据.XML本身不算复杂,但是,加上DTD.XSD.XPath.XSLT等一大堆复杂的规范以后,任何正常的软件开发人员碰到XML都会感觉头大了,最后大家发现,即使你努力钻研几个月,也未必搞得清楚XML的规范.于是,道格拉斯·克罗克福特(Douglas Crockford)发明了JSON这种超轻量级的数据交换语言,由于JSON非

  • Python学习笔记之文件的读写操作实例分析

    本文实例讲述了Python文件的读写操作.分享给大家供大家参考,具体如下: 读写文件 读取文件 f = open('my_path/my_file.txt', 'r') # open方法会返回文件对象 file_data = f.read() # 通过read方法获取数据 f.close() # 关闭该文件 首先使用内置函数 open 打开文件.需要文件路径字符串.open 函数会返回文件对象,它是一个 Python 对象,Python 通过该对象与文件本身交互.在此示例中,我们将此对象赋值给变

  • python config文件的读写操作示例

    本文实例讲述了python config文件的读写操作.分享给大家供大家参考,具体如下: 1.设置配置文件 [mysql] host = 1234 port = 3306 user = root password = Zhsy08241128 database = leartd 2.读取配置文件 import configparser import os conf= configparser.ConfigParser() def readConf(): '''读取配置文件''' root_pat

  • Python csv文件的读写操作实例详解

    这篇文章主要介绍了Python csv文件的读写操作实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python内置了csv模块,用它可以方便的操作csv文件. 1.写文件 (1)写文件的方法一 import csv # open 打开文件有多种模式,下面是常见的4种 # r:读数据,默认模式 # w:写数据,如果已有数据则会先清空 # a:向文件末尾追加数据 # x : 写数据,如果文件已存在则失败 # 第2至4种模式如果第一个参数指

  • Python YAML文件的读写操作详解

    目录 YAML格式 YAML文件 YAML操作 读取 存储 示例 转字典 转列表 YAML是一种数据序列化格式,方便人类阅读,且容易和脚本语言交互.常用于配置文件,也用于数据存储或传输. YAML格式 YAML三种基本数据类型: 1.标量:如字符串.整数和浮点数.日期 布尔值:“true”.“True”.“TRUE”.“yes”.“Yes"和"YES”,“false”.“False”.“FALSE”.“no”.“No"和"NO” 空:null.Null.~或不指定值

  • Python使用numpy模块创建数组操作示例

    本文实例讲述了Python使用numpy模块创建数组操作.分享给大家供大家参考,具体如下: 创建数组 创建ndarray 创建数组最简单的方法就是使用array函数.它接收一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的Numpy数组. array函数创建数组 import numpy as np ndarray1 = np.array([1, 2, 3, 4]) ndarray2 = np.array(list('abcdefg')) ndarray3 = np.array([

  • Python中关于文件的具体操作与介绍

    目录 文件的介绍 文件的打开与关闭 1.打开文件 2.写数据(write) 3.读数据(read) 4.读数据(readlines) 5.读数据(readline) 6.可写 ,追加(a) 二进制文件的读写 1.读数据(rb) 2.写数据(wb) 3.文件和文件夹的操作 3.1文件的重命名 3.2删除文件 文件夹的相关操作 1.创建文件夹 2.获取当前目录 文件的介绍 什么是文件?如图展示: 使用文件的目的: 保存数据存放在磁盘,把一些存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新

  • Java对xls文件进行读写操作示例代码

    前言 本文主要给大家介绍的是关于Java对xls文件进行读写操作的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: win7_x64 IDEA Java读写xls文件,使用库jxl.jar 读写xls文件,这里是在知道表格格式的前提下进行操作的. 目前无法操作xlsx文件 准备工作 将库jxl.jar添加到工程依赖中 Java代码示例 示例:从几个文件中读取数据并汇总到一个文件中 表格中的数据规定为:首行为标题,以下是数据和名称:例如 单位名 金额 单位1 948.34

  • java Apache poi 对word doc文件进行读写操作

    使用POI读写Word doc文件 Apache poi的hwpf模块是专门用来对word doc文件进行读写操作的.在hwpf里面我们使用HWPFDocument来表示一个word doc文档.在HWPFDocument里面有这么几个概念: Range:它表示一个范围,这个范围可以是整个文档,也可以是里面的某一小节(Section),也可以是某一个段落(Paragraph),还可以是拥有共同属性的一段文本(CharacterRun).   Section:word文档的一个小节,一个word文

随机推荐