目录
文件操作
操作CSV文件:
文件保存:
有时候我们有了一个数组,需要保存到文件中,那么可以使用np.savetxt
来实现。相关的函数描述如下:
np.savetxt(frame, array, fmt='%.18e', delimiter=None) * frame : 文件、字符串或产生器,可以是.gz或.bz2的压缩文件 * array : 存入文件的数组 * fmt : 写入文件的格式,例如:%d %.2f %.18e * delimiter : 分割字符串,默认是任何空格
以下是使用的例子:
a = np.arange(100).reshape(5,20) np.savetxt("a.csv",a,fmt="%d",delimiter=",")
读取文件:
有时候我们的数据是需要从文件中读取出来的,那么可以使用np.loadtxt
来实现。相关的函数描述如下:
np.loadtxt(frame, dtype=np.float, delimiter=None, unpack=False) * frame:文件、字符串或产生器,可以是.gz或.bz2的压缩文件。 * dtype:数据类型,可选。 * delimiter:分割字符串,默认是任何空格。 * skiprows:跳过前面x行。 * usecols:读取指定的列,用元组组合。 * unpack:如果True,读取出来的数组是转置后的。
np独有的存储解决方案:
numpy
中还有一种独有的存储解决方案。文件名是以.npy
或者npz
结尾的。以下是存储和加载的函数。
-
存储:
np.save(fname,array)
或np.savez(fname,array)
。其中,前者函数的扩展名是.npy
,后者的扩展名是.npz
,后者是经过压缩的。 -
加载:
np.load(fname)
。
CSV文件操作:
读取csv文件:
import csv with open('stock.csv','r') as fp: reader = csv.reader(fp) titles = next(reader) for x in reader: print(x)
这样操作,以后获取数据的时候,就要通过下表来获取数据。如果想要在获取数据的时候通过标题来获取。那么可以使用DictReader
。示例代码如下:
import csv with open('stock.csv','r') as fp: reader = csv.DictReader(fp) for x in reader: print(x['turnoverVol'])
写入数据到csv文件:
写入数据到csv文件,需要创建一个writer
对象,主要用到两个方法。一个是writerow
,这个是写入一行。一个是writerows
,这个是写入多行。示例代码如下:
import csv headers = ['name','age','classroom'] values = [ ('zhiliao',18,'111'), ('wena',20,'222'), ('bbc',21,'111') ] with open('test.csv','w',newline='') as fp: writer = csv.writer(fp) writer.writerow(headers) writer.writerows(values)
也可以使用字典的方式把数据写入进去。这时候就需要使用DictWriter
了。示例代码如下:
import csv headers = ['name','age','classroom'] values = [ {"name":'wenn',"age":20,"classroom":'222'}, {"name":'abc',"age":30,"classroom":'333'} ] with open('test.csv','w',newline='') as fp: writer = csv.DictWriter(fp,headers) writer.writerow({'name':'zhiliao',"age":18,"classroom":'111'}) writer.writerows(values)