Numpy文件读写操作(4.30学习)

1.将一维或二维数组写入TXT文件或CSV格式文件
#
# 例5-1[92]创建一个元素范围为0-11的3行4列的数组,然后设置不同的参数,将该数组写入TXT文件和CSV文件

# In[2]:

# 函数格式
#   numpy.savetxt(fname,arry,fmt='%.18e',delimiter=None,newline='\n',header'',
#                 footer='',comments='#',encoding=None)

# In[3]:

import numpy as np
import pandas as pd

# In[4]:

arr = np.arange(12).reshape(3,4)
arr

# In[5]:

# fmt默认取值%。18e(浮点数),分隔符默认是空格,写入文件保存在当前目录
np.savetxt('test5-1-1.txt',arr)

# 写入文件的是十进制整数
np.savetxt('test5-1-2.txt',arr,fmt='%d',delimiter=',')

# In[6]:

# 在test5-1-3.txt文件头部和尾部都加#test5-1-3注释,写入的文件是字符串
np.savetxt('test5-1-3.txt',arr,fmt='%s',delimiter=',',header=           'test5-1-3.txt',footer='test5-1-3.txt')
# unexpected character after line continuation character(行连续字符后出现意外字符)[\注意转换符]

# 在test5-1-4.txt文件头部加##test5-1-4注释
np.savetxt('test5-1-4.txt',arr,fmt='%s',delimiter=',',header=           'test5-1-4.txt',comments='##')

# In[7]:

# 将arr数组保存为CSV文件
np.savetxt('test5-1.csv',arr,fmt='%d',delimiter=',',header='test5-1')

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

# In[8]:

# numpy.loadtxt(fname,dtype=,delimiter=None,convert
# #              ers=None,skiprows=0,usecols=None,unpack=False,ndmin=0,comments='#',encoding=None)# 

# 例5-2利用Numpy函数实现读取TXT文件和CSV格式文件的操作
#
# (1)将例5-1中创建的test5-1-1.txt、test5-1-2.txt、test5-1-3.txt、test5-1-4.txt、test5-1.csv文件的数据读取并保存到数组中
#
# (2)创建学生通讯录的CSV文件,将文件中包含学生姓名、电话和E-mail,并将其保存为phone.CSV文件。然后从文件中读取数据并保存到数组中。其中,学生通讯录CSV文件(列表形式,两值之间用逗号隔开)的数据

# In[9]:

# id,name,tel,email
# 1,李明,13873321234,[email protected]
# 2,王红,15873321654,[email protected]
# 3,张艳,13921451234,[email protected]

# In[10]:

#从test1.txt文件中读取数据
arr1 = np.loadtxt('test5-1-1.txt')
print(arr1)

# In[11]:

#从test2.txt文件中读取数据
arr2 = np.loadtxt('test5-1-2.txt',delimiter=',')
arr2

# In[12]:

#从test3.txt文件中读取数据
arr3 = np.loadtxt('test5-1-3.txt',dtype=np.int32,delimiter=',')
arr3

# In[13]:

#从test4.txt文件中读取数据

arr4 = np.loadtxt('test5-1-4.txt',delimiter=',')

print(arr2,arr3,arr4)

# In[14]:

df = pd.read_csv('test5-1.csv')
df

# In[19]:

df = pd.read_csv('phone.csv')
# (新建的phone.csv时
# 1.选中需要转换编码的文件,右击选择“记事本”打开。
# 2.打开以后,选择“文件”菜单下面的“另存为”。
# 3.在弹出的窗口中,找到“编码”,选择“UTF-8”选项。
# 4.选择文件保存路径,然后保存。 )
df

# In[20]:

#从csv文件中读取数据
arr5 = np.loadtxt('test5-1.csv',delimiter=',')
arr6 = np.loadtxt('phone.csv',dtype=np.str,delimiter=',')
print(arr5,arr6)

# 使用 NumPy 读写二进制格式文件
#
# 在 NumPy 中,load() 和 save() 函数是专门用于读写二进制格式文件的,它们具有自动处理数组元素类型和形状的功能。savez() 函数能提供将多个数组存储至一个文件的能力,save() 函数保存之后后缀名为 npy,savez() 函数保存之后后缀名 .npz。
#
# 使用解压程序打开 npz 文件可以看到里面是若干个以“数组名称”命名的 NPY 格式的文件,数组名称默认为“arr_数字”的形式,在 savez() 函数中可以通过指明函数的参数名称来命名数组。
#

# In[21]:

# 1. 使用 save() 或 savez() 函数写二进制格式文件save() 或 savez() 函数的格式如下:

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

# 函数中参数说明如下:

# file:文件名,以 .npy 为扩展名,压缩扩展名为 .npz;
# array:数组变量。

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

# load() 函数的格式如下:

# numpy.load(file)

# 其中,file 为文件名,以 .npy 为扩展名,压缩扩展名为 .npz。

# load()、save() 和 savez() 函数的示例代码 example1 如下。

# In[22]:

import numpy as np
#load和save函数的示例代码
arr1 = np.arange(30).reshape(3,5,2)
np.save('arr1.npy',arr1)

arr_a = np.load('arr1.npy')
print(arr_a)

# In[23]:

#load和savez函数的示例代码

arr2 = np.arange(20).reshape(4,5)
np.savez('arr2.npz',arr1,arr2)

arr_b = np.load('arr2.npz')
print(arr_b)

# In[ ]:

# 使用 NumPy 读写多维数据文件

# 在 NumPy 中,tofile() 和 fromfile() 函数可用于读写多维数据文件。

# 1. 使用 tofile() 函数写入多维数据文件

# tofile() 函数的格式如下:

# 数组名.tofile(fid, sep='', format='%s')

# 函数中的参数说明如下:

# fid:文件、字符串;

# sep:数据分割符,如果是空串,写入文件为二进制,即默认为空串;

# format:写入数据的格式。

# 2. 使用 fromfile() 函数读取多维数据文件

# fromfile() 函数的格式如下:

# numpy.fromfile(file,dtype=float,count=‐1,sep='')

# 函数中的参数说明如下:

# file:文件、字符串;

# dtype:读取的数据类型。读取数据的时候都需要指定数据类型,默认为浮点型;

# count:读入元素个数,-1 表示读入整个文件;

# sep:数据分割符,如果是空串,写入文件为二进制形式。

# tofile() 和 fromfile() 函数的示例代码 example2 如下。

# In[27]:

import numpy as np

#tofile和fromfile函数的示例代码

arr1 = np.arange(30).reshape(3,5,2)
arr1.tofile('arr.dat',sep=',',format='%d')

arr = np.fromfile('arr.dat',dtype=np.int32,sep=',').reshape((5,3,2))
print(arr)

你可能感兴趣的:(python,机器学习,数据挖掘)