简介
在本文中,我们将讨论使用Python进行大数据和数据分析。您当然也可以在CPDA数据分析师的课程中学习到相关知识。
由于连接到互联网的设备和用户数量庞大,数据量正以指数级速度增长。那些实施大数据系统的公司将在市场上拥有显著的竞争优势。这种优势主要源于实体能够基于系统成功分析和处理的数据成功地做出短期和长期决策,并最终呈现为一个有意义的整体。
实施大数据系统并不容易,它需要大量的长期财务投资。公司在实施大数据系统时遇到的障碍不仅是财务上的,还有人力和技术上的。
在大数据系统的各个组件中,最流行的编程语言之一是Python。Python的灵活性和强大功能可能在数据分析和处理中最为明显。
大数据现象的特点有3个Vs:
?容量(大量数据)
?速度(不断收集新数据和旧数据的数字化)
?多样性(不同类型和格式的数据,包括数据库、文档、图像、文件等)
大数据的现象几乎只有一个作用,那就是及时准确的信息作为企业质量评估的基础。大数据现象经常被放在人工智能的背景下。这样的描述往往令人困惑。大数据现象并不是指设备或系统通过应用机器学习方法来学习像人类一样思考或行为,而是通过将数学、统计和计算机方法应用于大型数据集,在决策过程中获得尽可能准确的概率,例如,程序包含恶意代码的概率,或者我们根据消费者的购买历史为其未来行为做出最佳预测的概率。
大数据和小数据的区别
我们不能把大量的数据看作是随着时间的推移在数据大小方面发生了变化的小数据,以至于不能在传统的数据处理程序(如Excel)中打开它,或者在超过存储它的服务器上资源的数据库中打开它。这种误解在专家中很常见,他们认为应用现有的知识和方法可以分析更复杂和更大的数据集,这可能会导致由于错误的决策而导致突然的财务成本和糟糕的结果。在这种情况下,所谓的大数据和小数据之间的根本区别最好地体现在下图中,y轴显示了较小系统生成的数据量,x轴显示了较大类别系统实现的数据多样性和复杂性:
大数据和小数据的基本区别表现在:
要实现的目标的背景。小数据通常用于回答特定的业务问题。另一方面,大数据的设计目标是长期使用和时间灵活性。
?位置上下文。小数据通常位于一个机构内,即一台服务器上,有时仅在一个文件中。另一方面,大数据分散在多个互联网服务器和多个机构。
?结构和内容的上下文。小数据通常具有显著的结构化,即它们来自一个学科或部门,这意味着它们的结构通常是统一的。另一方面,大数据是非结构化的,即数据来自多个来源,具有不同的数据结构和格式。
?数据准备的背景。当涉及到小数据时,在大多数情况下,用户准备自己的数据,这些数据通常用于个人需求。对于大数据,数据来自多个来源和多个用户。
?数据生命周期上下文。小数据的生命周期通常缩短为项目本身的生命周期。有了大数据,数据的存储必须是长期的,因为它们的用途是多功能的,为了将来的研究,有必要有以前的数据。
?金融投资的背景。对于小数据,财务成本是有限的,用户可以相对较快地从数据丢失中恢复。当应用大数据概念时,数据丢失或不可预见的灾难可能导致实体破产和重大经济损失。
?分析背景。小数据分析相对容易和快速,通常在一个步骤和使用单一程序。对于大数据,除了少数例外,数据分析通常分多个步骤进行。数据需要存储,为处理、检查、分析和解释做好准备。
大数据与Python
Python作为一种数据分析语言,同时也是CPDA数据分析师课程重要的知识点。
在计算机工程中,最重要的事情之一是计算机算法快速有效地解决给定问题的能力,而且它们的实现也尽可能简单和廉价。追求计算机资源负担最小、可靠性高的优化计算机代码或编程语言是很自然的事情。在某些情况下,使用这些编程语言,如C、Fortran或ADA,在关键时刻结合系统的高可靠性获得所使用资源的最大效率和有效性是不可避免的。
但是,使用这种编程语言来完成其他编程语言可以用更少的代码行完成的大量其他任务并不总是明智的,这在现代企业中并不总是如此。
有必要考虑用编程语言解决特定问题所需的开发时间,使用低级编程语言解决不需要极高可靠性和效率的问题。
这就是高级编程语言的原因,它们具有更简单的语法、灵活性和更易于维护的系统。这大大缩短了开发或解决特定问题所花费的时间。
上图显示了使用的差异,即高级和低级编程语言之间的折衷。即使在以前需要大量节省计算机资源的领域,高级编程语言也变得非常流行,这主要是因为以MIPS/美元(每秒数百万条指令)衡量的处理能力变得更便宜了。由于处理器制造商的市场竞争更加激烈,由于互联网的指数级增长,人类知识,即人力资本,每小时工作变得更加昂贵。
在许多情况下,可以在使用多语言编程模型中看到解决方案,其中低级编程语言用于需要高可靠性的某些任务,而高级编程语言用于其他部分。在这种类型的集成中,编程语言,如Python,已经成为所谓编程语言的同义词,作为一种粘合剂,将时间紧迫和计算密集的任务与简单的用户界面结合起来。
从这个假设出发,现代的Python被开发出来,它已经远远超过了一个订书机的角色。近年来,伴随开发环境和库的整个生态系统已经开发出来并开始活跃起来。许多这些“表面以下”库都是用低级语言编写的,以获得最佳性能,而通过使用简单清晰的Python语法,它们的控制得到了最大程度的简化。正是这种生态系统和上述事实,是Python成功的原因,它已成为当今最受欢迎的编程语言之一。
上面的图像最好地说明了Python的生态系统,其中链的顶端是开发环境,其中编写了非常简单而清晰的Python编程语言语法,链的底部是用低级编程语言编写的系统库,直接与操作系统交互。值得一提的是,大多数开发环境和软件库都是开源的,也就是说,它们都带有免费的知识产权许可证,这对于应用程序开发人员的开发来说,意味着在开发过程中大大节省了成本。
Python中用于数据分析的流行库
Pandas和Matplotlib库
Pandas库是用于数据处理和操作的最著名的开源库之一。这个库提供了数据结构处理,允许您以快速灵活的方式处理各种数据类型和时间序列。
这个库是为以下类型的数据设计的:
?电子表格数据,如Excel和SQL结构化表
?已排序和未排序的时间序列数据
?来自不同数据结构的异构和同构矩阵数据
这个库适用于以下类型的操作:
?轻松处理特定数据集中的缺失数据
?数据操作:可以在数据帧中插入和删除列
?轻松地将数据从一种数据结构转换为另一种数据结构
?智能数据切割和索引
?合并数据集
?时间序列数据的特殊功能,可以轻松地对时间序列进行数据分析和处理
在Pandas库的帮助下处理的数据通常由Matplotlib库以图形方式显示,Matplotlib库也是用于图形显示的最流行的库。这个库最大的优点在于它的多功能性、通用性和易用性。
SciPy图书馆
这个库用于某些描述性统计和相关函数。
SciPy库适用于以下类型的操作:
?线性代数
?信号处理
?傅里叶变换
?数学插值
?统计
?多维图像处理
在下面的图像中,我们可以看到在处理信号时使用SciPy库的一个示例。
稍后我们还将在线性回归中看到Scikit-learn库,尽管这个库在机器学习中最常见,我们仍然要认真学习掌握相关。