打开设置单元格格式对话框-英雄云拓展知识分享
67
2023-10-25
【摘要】 本书摘自《Python数据分析案例教程》一书中第3章,第4节,由万念斌、肖伟东、叶丰标编著。
3.4.2 文本文件的读写
NumPy 用于读写文本文件的函数是 loadtxt()和 savetxt()。loadtxt()函数的原型为: numpy.loadtxt(fname,dtype=
converters= None, skiprows =0,usecols =None,unpack =False,ndmin=0,encoding=
'bytes'
函数参数的作用如下:
(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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~