【Python学习】NumPy文件存取

本文介绍了如何利用Python numpy库中的 tofile 和 fromfile 方法进行数据的二进制读写,以及如何通过 save 和 load 方法处理二进制格式的数据。此外,还详细讲解了如何使用 savetxt 和 loadtxt 方法来读写文本文件,包括处理CSV格式文件的读取,以及针对非标准数据布局文件的读取策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# coding: utf-8

# 1. tofile方法写入,fromfile方法读出。特点:二进制读写,不保存数组的形状和元素类型等信息。
#    读出的时候需要指定dtype和对读出的数组进行修改shape操作

# In[3]:

import numpy as np
a=np.arange(0,12)
a.shape=3,-1
a.tofile("saved_a.bin")# 保存数据。
print a
b=np.fromfile("saved_a.bin",dtype=np.int32)#读出的时候,需要指定类型,否则会出错
#注意这时候的b还是一维的。
print b.shape

b.shape=3,-1
print b


# 2. load 和save方法,是numpy专用的方法,用来保留二进制格式的数据。
#    相对于tofile和fromfile ,它会自动的处理元素类型和shape

# In[7]:

np.save("saved_b.npy",b)

c=np.load("saved_b.npy")

print c



# 如果要保存多个对象,则用savez,
# 其读出顺序为arr_0 arr_1 arr_2 ...

# In[8]:

np.savez("saved_all.npz",a,b,c)#写入多个对象
#读取多个对象
d=np.load("saved_all.npz")
print d["arr_0"]
print d["arr_1"]
print d["arr_2"]



# 3. 用savetxt() 和loadtxt() 读写一维或者二维数组的文本文件,通常用来读写csv格式的文本
# 默认用空格分隔

# In[12]:

np.savetxt("a.txt",a)

e=np.loadtxt("a.txt")

print "默认:"
print e

np.savetxt("b.txt",b,fmt="%d",delimiter=",")#可以指定用整数的格式存储,用逗号分隔。

f=np.loadtxt("b.txt",delimiter=",")
print "指定:"
print f


# 4. 针对首行或者首列不是数据的文件读取,通常采用:将文件读取为字符串数组,然后取出需要的部分,转为数值数组。
# 
# 如: 文本文件test.csv 为
# 姓名,年龄,体重 
# 张三,20,120
# 李四,23,110

# In[14]:

temp=np.loadtxt("test.csv",dtype=np.str,delimiter=",")
data=temp[1:,1:].astype(np.float)
print data


# 如果只是首行不是数据,而其它都是标准格式的数据,那么也可以只需要先读取一行,然后再将文件传给loadtxt()

# In[16]:

g=open("test.csv")
g.readline()
data=np.loadtxt(g,dtype=np.str,delimiter=",")
print data


# In[ ]:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值