ad

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

admin 67 2023-10-25

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

3.4.2 文本文件的读写

NumPy 用于读写文本文件的函数是 loadtxt()和 savetxt()。loadtxt()函数的原型为: numpy.loadtxt(fname,dtype=,comments='#',delimiter=None,

converters= None, skiprows =0,usecols =None,unpack =False,ndmin=0,encoding=

'bytes'

函数参数的作用如下:

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

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

(2)dtype:结果数组的数据类型,可选项,默认值为 float。

(3)comments: 用于指示注释开头的字符或字符列表,即跳过文件中指定注释字符串开

头的行,可选项。

(4)delimiter:指定读取文件中数据的分隔符,可选项,默认值为 None。

(5)converters:对读取的数据进行预处理,可选项,默认值为 None。

(6)skiprows:跳过的行数,可选项,默认值为0。

(7)usecols:指定读取的列,可选项,其中0为第1列。 usecols=(1,4,5)表示读取第2、

5、6列数据。默认值为 None, 表示读取所有列数据,

(8)unpack:是否解包,可选项,布尔值,默认值为 False。unpack=True 表示会对返回

的数组进行转置。(9)ndmin: 返回的数组的最小维度,默认值为0。

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

numpy.savetxt(fname,X,fmt='%. 18e',delimiter='',newline='n',header='',footer ='',comments='#',encoding=None)

函数参数的作用如下:

(1)fname:要写入的文件。

(2)X: 要保存到文本文件中的数据。

(3)fmt:格式字符系列,可选项。

(4)delimiter:分隔列的字符串或字符,可选项。

(5)newline:分隔行的字符串或字符(即换行符),可选项。

(6)header:在文件开头写入的字符串,可选项。

(7)footer:在文件结尾写入的字符串,可选项。

(8)comments: 将页眉和页脚字符串前附加字符串,以将其标记为注释,可选项。

(9)encoding:编码,值可以是'latinl'、'ascii'、'bytes',默认值是'ascii'。 【案例3-15】使用 loadtxt() 函数加载文本数据。程序代码如下:

#encoding:utf-8

import numpy as np

import os

from io import StringIO

def main():

os.getcwd()

c=StringIO(u"01\n23")

wl=np.loadtxt(c)# 通过文本加载数据

print('通过文本加载数据'.center(30,'-'),\n',wl)

d=StringIO(u"M 2068\nF 3659")

w2=np.loadtxt(d,dtype={'names':('gender','age','weight'),'formats':('str','i4','f4')}) print('文本加载时指定类型'.center(30,'-'),'\n',w2)

e=StringIO(u"1,0,2\n3,0,6")

x,y=np.loadtxt(e,delimiter=',',usecols=(0,2),unpack=True)

#指定分隔符、读取指定的列

print(第1列'.center(30,'-'),\n',x)

print( 第 3 列 .center(30,'-'),'\n',y)

if

name ==" main ":

__ __ __ __

main()

程序运行结果如下:

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

-----通过文本加载数据-----------

[[ 0. 1.]

[ 2. 3.]]

-------文本加载时指定类型-----------

[(’’,20,68.)(’’,36,59.)]

第1列-----------

[ 1. 3.]

第3列-

[ 2. 6.]

Process finished with exit code 0

【案例3-16】使用NumPy 函数进行数据文件的读写操作。程序代码如下: #encoding:utf-8

import numpy as np

def main():

a=np.random.randint(1,100,size=(10,5))

np.save('numpylOFile.npy',a)#npy 文件是 NumPy 专用的二进制格式数据文件

b=np.load('numpyIOFile.npy')#npy 文件打开是乱码,通过调用load函数可正常显示

print('npy 格式文件',center(30,'='),'\n',b)

np.savetxt('numpyIOTxt.txt',a,fmt='%d',delimiter=',')#

c=np.loadtxt('numpyIOTxt.txt',delimiter=',')# printC'txt 格式文件'.center(30,'='),'\n',c)

#将多个数组保存到以npz 为扩展名的文件中 al=np.arange(0,1.0,0. 1)

a2=np.sin(al)

#a2 使用了关键字参数 sin array

np.savez("numpyIOnpz.npz",a,al,sin array=a2) d=np.load("numpyIOnpz.npz")

printC'npz 格式文件'.center(30,'='),\n',d)

print(d.files)# 查看各个数组名称

printC 数组 a'.center(30,'='),\n',d['arr 0 门]

print( '数组 al'.center(30,'='),'\n',d['arr 1'])

printC 数组 a2'.center(30,'='),\n',d['sin array'])

if name ==" main ":

__ __ __ __

保存为整数,以逗号分隔 装载时也要指定为逗号分隔

#输出数组 a

# 输出数组 al

# 输出数组 a2

main()

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

上一篇:《基于Kubernetes的容器云平台实战》_了解最新技术前沿_2.2 容器生命周期管理
下一篇:从《Python数据分析案例教程》中_领悟数据和Python的魅力_6.2.2 数据的级联
相关文章

 发表评论

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

×