2-10 读写文件

In [2]:
import numpy as np
In [3]:
%%writefile tang1.txt
1 2 3 4 5 6
2 3 4 5 6 7
 
Overwriting tang1.txt
 

从文件里读取数据,再转换成np.array的结构

In [4]:
data=[]
with open('tang1.txt')as f:
     for line in f:
        fileds=line.split()#默认空格切分
        cur_data=[float(x) for x in fileds]
        data.append(cur_data)
data=np.array(data)
data
Out[4]:
array([[1., 2., 3., 4., 5., 6.],
       [2., 3., 4., 5., 6., 7.]])
 

简写的方式

In [5]:
data=np.loadtxt('tang1.txt')
data
Out[5]:
array([[1., 2., 3., 4., 5., 6.],
       [2., 3., 4., 5., 6., 7.]])
 

写入的数据默认空格为分隔符,如果不是则需要delimiter=' ',指定一下对应的分隔符

In [6]:
%%writefile tang2.txt
1,2,3,4,5,6
2,3,4,5,6,7
 
Overwriting tang2.txt
In [7]:
data=np.loadtxt('tang2.txt',delimiter=',')
data
Out[7]:
array([[1., 2., 3., 4., 5., 6.],
       [2., 3., 4., 5., 6., 7.]])
In [8]:
%%writefile tang3.txt
x,y,z,w,a,b
1,2,3,4,5,6
2,3,4,5,6,7
 
Overwriting tang3.txt
In [9]:
data=np.loadtxt('tang2.txt',delimiter=',',skiprows=1)
data
Out[9]:
array([2., 3., 4., 5., 6., 7.])
 
  • 'tang3.txt':路径最好放到和代码一起
  • skiprows:去掉几行
  • delimiter=',':分隔符
  • usecols=(0,1,4):指定使用哪几列
 

写入到新文件里¶

In [25]:
tang_array=np.array([[1,2,3],[4,5,6]])
np.savetxt('tang4.txt',tang_array)#保存模式是科学计数法
In [26]:
np.savetxt('tang4.txt',tang_array,fmt='%d')#保存整数模式
In [27]:
np.savetxt('tang4.txt',tang_array,fmt='%d',delimiter=',')##以,为分隔符
In [30]:
np.savetxt('tang4.txt',tang_array,fmt='%.2f',delimiter=',')#有2位的浮点数
 

读写array结构¶

In [39]:
tang_array=np.array([[1,2,3],[4,5,6]])
np.save('tang_array.npy',tang_array)#保存np.array的数据结构
In [40]:
tang=np.load('tang_array.npy')
tang
Out[40]:
array([[1, 2, 3],
       [4, 5, 6]])
In [41]:
tang_array2=np.arange(10)
tang_array2
Out[41]:
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
In [42]:
np.savez('tang.npz',a=tang_array,b=tang_array2)#保存为压缩文件
In [43]:
data=np.load('tang.npz')
In [48]:
data.keys()
Out[48]:
KeysView()
In [45]:
data['a']
Out[45]:
array([[1, 2, 3],
       [4, 5, 6]])
In [46]:
data['b']
Out[46]:
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

你可能感兴趣的:(2-10 读写文件)