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.

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

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")

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄