一、什么是数据?
入门数据学科,首先第一步要认识数据什么,可能大多数人都无法对数据做一个准确的定义,在我们印象中,提到数据首先头脑浮现的是数据表格,是一堆堆数字,那么数据就是数字吗?显然二者不能完全划等号,我们来看一下度娘对数据定义的解读。
数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始素材。
数据是信息的表现形式和载体,可以是文字、符号、数字、语音、图像、视频等。数据和信息是不可分离的,数据是信息的表达,信息是数据的内涵,数据本身没有意义,数据只有对实体行为产生影响时才成为信息。
数据可以是连续的值,比如声音、图像,称为模拟数据(连续数据)。也可以是离散的,如符号、文字,称为数字数据(离散数据)。
在计算机系统中,数据以二进制信息单元0、1的形式表示。
通过以上解读,我们可以发现,我们印象中的数字只是数据的一种形式,广义的数据包含的内容很多,文字,语音,图像,视频都是数据定义的范畴,因为无论哪种形式,它们到计算机里面都是0和1,只是编码的形式有差别,这样说来,数据挖据,计算机视觉,自然语言处理等都是数据科学的范畴。
二、什么是数据类型?
在学任何一门编程语言的开始,我们都要学习相关的数据类型,那么数据类型究竟又是如何定义的呢?
数据类型在数据结构中的定义是一组性质相同的值的集合以及定义在这个值集合上的一组操作的总称。
变量是用来存储值的所在处,它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。在声明变量时也可指定它的数据类型,所有变量都具有数据类型,以决定能够存储哪种数据。
在学python语言时,有一个问题一直困扰着我,列表元组这些到底是数据类型还是数据结构呢?后来读了一些博客,发现数据类型主要包括原子类型和结构类型:
原子类型是指一种值的集合以及定义在值上的一组操作,比如在python中,有整数型(int),浮点数型(float),布尔型(bool),字符串(str)等,这是我们印象中的常规表现形式;
结构类型(复合类型)是指一种数据结构以及定义在结构上的一种操作,是数据类型的另一种表现形式,是通过原子类型封装的更复杂的数据类型,比如在面向对象的编程语言python中,列表(List),字典(Dict),元组(Tuple)等都是这种类型。
因此,严格意义上来讲,列表元组这些应该是python内置的复合数据类型。
三、什么是数据结构?
从我的困惑可以看出,数据类型和数据结构之间存在联系但也有一定的区别。
数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成 。包括逻辑结构和物理结构。
逻辑结构描述数据之间的相互关系,按照逻辑结构划分,主要分为线性结构和非线性结构,线性结构数据元素是一对一的关系,非线性结构数据元素是一对多和多对多的关系。
常见的线性结构有数组(Array)、链表(Linked List)、栈(Stack)、队列(Queue),常见的非线性结构有树(Tree),堆(Heap),图(Graph),散列表(Hash)。
物理结构描述数据具体在内存中的存储(如:顺序结构、链式结构、索引结构、哈希结构)等。
最后需要指出的是,数据类型和数据结构是基于某种编程语言的,不同的计算机语言(C、python、C#等)它们的数据类型和数据结构略有不同,但本质差异不大。
四、小结
入门数据科学,第一步就是认识数据,了解数据类型和数据结构,数据类型和数据结构是依赖于编程语言的,对数据类型和数据结构有充分的认识,对以后数据分析和挖掘非常有帮助。
本期内容就到这里,我们下期再见!需要数据集和源码的小伙伴可以关注私信作者或者底部公众号添加作者微信!
作者简介:
读研期间发表6篇SCI数据挖掘相关论文,现在某研究院从事数据算法相关科研工作,结合自身科研实践经历不定期分享关于Python、机器学习、深度学习、人工智能系列基础知识与应用案例。致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。