As we all know,we use numpy to do some data explore.CSV has a good point to get a lot data.
so how can we get a data from CSV by numpy.
NO.1 you can use file to open it.
这里的csv文件为泰坦尼克号的文件(此处是对于维度小于等于2)
import csv
filename = ‘C:\Users\dzy520\Desktop\train.csv‘
with open(filename) as f:
data = csv.reader(f)
for row in data:
print(data.line_num,row) ### 这里data.line_num是输出的数据前面有标号
NO.2你也可以使用特殊的公式,这个公式包含一个将数据写进numpy 和将CSV文件调用到numpy (外部文件好像不行,我在这里使用了那个train.csv文件报错了,希望大神指点)
np.savetxt(frame,array,fmt=‘%.18e‘,delimiter=None)
np.loadtxt(frame,dtype=np.float,delimiter=None,unpack=False) ### frame: 文件,字符串或产生器,也可是.gz的压缩文件
### array: 存入文件的数组
### fmt: 写入文件格式
### delimiter 是分隔符
### unpack :如果是True,读入属性将分别写入不同变量,默认为False
import numpy as np
a = np.arange(100).reshape(5,-1)
np.savetxt(‘a.csv‘,a,fmt=‘%d‘,delimiter=‘,‘)
c=np.loadtxt(‘a.csv‘,dtype=np.float,delimiter=None,unpack=False)
以上是对二维和一维方法下面介绍对于多维的方法
我们可以使用
a.tofile(frame,sep=‘‘,format=‘%s‘) ###数据分割字符串,如果是空的,写如文件格式为二进制
无论是文本文件还是二进制文件都能还原数据用:
np.fromfile(frame,dtype=np.float,count=-1,sep=‘‘)
这里 fromfile要和tofile配合使用,使用之前要知道元素的类型和维度(可以通过数据文件来存储额外信息)
a = np.arange(64).reshape(8,8)
a.tofile(‘b.dat‘,sep=‘,‘,format=‘%d‘)
c = np.fromfile(‘b.dat‘,dtype=np.int,sep=‘,‘)
对于多维的存取可以使用
存:np.save(fname,array)或者np.savez(fname,array)
读:np.load(frame)
np.save("a.npy",a) ###a.npy是一个二进制文件,打开后第一行有数据维度信息
np.load("a.npy")
原文地址:https://www.cnblogs.com/Pigsss/p/QQ2501527572.html