如何读取数据

前言

人工智能本质上是数据科学,一切操作都是基于对数据的操作,因此,立志要学好ai的人就必须要学会数据的基本操作。

先来个简单的

先介绍一种比较简单的读取文件方式,这种方式相对于下面的pandas读取来说速度更快的一点,结构自定,对于新手来说比较方便

先寻找文件地址:

这里存在两种不同的情况,第一种就是相对比较简单的,你要操作的数据就在你当前目录下,那么直接操作就可以,下面讲讲第二种情况,即数据文件不在当前目录下。

针对这种情况,一种比较正规的方式是使用os库,现假设你当前目录为d:\file\python,但是你的数据文件在d:\dataset这个文件夹里面,那么这时候你只需要调用

1
2
import os 
os.chdir('d:\dataset')

这样你的当前目录就调到dataset文件下,之后你就可以读取文件,

第二种方式是,如果你在jupyter上运行代码的话,你可以直接新建一个代码段用cd指令来进行调转。

在确定你的当前操作目录跟你的数据集文件在同一目录下后,你就可以读取文件了,简单的方式是:

1
file = open('train.txt','r')

然后这里文件形式为:

user item rating timestamp
0 5 3 0898988
0 4 2 ….
…. ….
…. ….

这里第一行是0 5 3 987334

那么连续读取文章的方式为

1
2
3
4
5
line = file.readline()
while line !=None and line !='':
arr = line.strip(' ').split(' ')
user,item,rating = arr[0],arr[1],arr[2]
line = file.readline()

通过这种方式就可以很方便的读取数据,还能把数据存成你喜欢的数据格式。

利用pandas

这里介绍一种有点逼格的方法,利用python强大库中的pandas

1
2
import pandas as pd
train_file = pd.read_csv('train.csv',names=['user','item','rating','timestamp'],sep='\t')

这样你就打开了这个train.csv文件,函数还规定了每列的名字。这个方法的好处是,一个语句就可以把整个文件读出。

train_file.head() 就会输出前五行的数据

train_file.decribe()则会显示每列的数据形式

这里简单的介绍下这个pandas,利用这个函数读出的格式为datafram格式,这个格式包含很多内置函数来帮助你处理数据,就是初期使用会有的繁琐,上手以后十分快乐。

pd.cut(data,bin):

这个函数可以帮助你把数据按照bin的格式进行分类。

bin = [0,59,70,80,100]

data=[ 27 ,70 ,55, 87 ,95 ,98, 55 ,61, 86, 76, 85, 53, 39, 88, 41, 71, 64, 94, 38, 94 ]

那么在处理过后,cut=pd.cut(data,bin)

cut = [ (0, 59], (59, 70], (0, 59], (80, 100], (80, 100], …, (70, 80], (59, 70], (80, 100], (0, 59], (80, 100] ]

然后你还可以基于此进行一个统计

pd.value_counts(cut)

输出为

(80, 100] 8

(0, 59] 7

(59, 70] 3

(70, 80] 2

pd.apply()

这个函数个人感觉是非常有用的一个函数,在处理数据时非常舒服。这个函数可以让你非常方便的对datafram的行或者列进行操作。

剩下的还有lambda ,fillna()函数…..,以及画图的mataplot,seaborn这些函数都不再详细讲解,不过这些都将会在你以后的学习中经常用到,自己学习一下。

链接: https://pan.baidu.com/s/17MjWhS-owkDRYYwj_4mQZQ&shfl=shareset 提取码: e62w

这里有个数据集,可以尝试一下把里面的数据集按照用户名从小到大的顺序排序,然后计算每个用户的平均值并把这个平均值加到数据里面。

相关文章
评论
分享
  • 线代简讲

    行列式 谈到线性代数时有两个基本概念:行列式,矩阵。 说到行列式我们应该明确一点:行列式表达的是一个具体的值,他的表现形式为$$\left| \begin{array}{c} a_{\text{1,}1},, a_{\text{...

    线代简讲
  • pandas 简单介绍

    前面介绍了pandas如何读取文件,这次就介绍一下pandas的一些基本知识

    pandas 简单介绍
  • 三.损失函数

    我们在日常所说的模型训练的过程就是模型不断学习数据特征的过程,那么这个过程是如何进行的? 可以把一个初始化的模型视为一个刚出身的婴儿,对这个世界(数据)一无所知,于是他便开始学习自己接触的一切事务,从中掌握事物运行的规律。 而这个学习...

    三.损失函数
  • 一.决策树

    前言在具体了解机器学习之前,我们先了解一些基本的操作和概念。以下的内容如果你感觉简单,你可以自行选择后面内容学习,不过我还是建议每篇文章都大概浏览一遍。如果你不太理解,也别灰心,很多前面文章一带而过的东西则会在后面详细讲解。 决策树众...

    一.决策树
  • Knn

    KNN前言:knn(K-Nearest Neighbor)中文名叫做k最近邻算法,这是有监督算法(自己下去百度一下什么是有监督,什么是无监督),分类算法中简单粗暴的一个。 分类方法是根据距离该点最近的k个邻居,从而得到该点所属的分类。...

    Knn
  • Hello World

    Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using ...

    Hello World