热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

3个用于数据科学的顶级Python库

使用这些库把Python变成一个科学数据分析和建模工具。Python的许多特性,比如开发效率、代码可读性、速度等使之成为了数据科学爱好者的首选编程语言。对于想要升级应用程序功能的数

使用这些库把 Python 变成一个科学数据分析和建模工具。


Python 的许多特性,比如开发效率、代码可读性、速度等使之成为了数据科学爱好者的首选编程语言。对于想要升级应用程序功能的数据科学家和机器学习专家来说,Python 通常是最好的选择(比如,Andrey Bulezyuk 使用 Python 语言创造了一个优秀的机器学习应用程序)。

由于 Python 的广泛使用,因此它拥有大量的库,使得数据科学家能够很容易地完成复杂的任务,而且不会遇到许多编码困难。下面列出 3 个用于数据科学的顶级 Python 库。如果你想在数据科学这一领域开始你的职业生涯,就去了解一下它们吧。


NumPy

NumPy(数值 Python 的简称)是其中一个顶级数据科学库,它拥有许多有用的资源,从而帮助数据科学家把 Python 变成一个强大的科学分析和建模工具。NumPy 是在 BSD 许可证的许可下开源的,它是在科学计算中执行任务的基础 Python 库。SciPy 是一个更大的基于 Python 生态系统的开源工具,而 NumPy 是 SciPy 非常重要的一部分。

NumPy 为 Python 提供了大量数据结构,从而能够轻松地执行多维数组和矩阵运算。除了用于求解线性代数方程和其它数学计算之外,NumPy 还可以用做不同类型通用数据的多维容器。

此外,NumPy 还可以和其他编程语言无缝集成,比如 C/C++ 和 Fortran。NumPy 的多功能性使得它可以简单而快速地与大量数据库和工具结合。比如,让我们来看一下如何使用 NumPy(缩写成 np)来实现两个矩阵的乘法运算。

我们首先导入 NumPy 库(在这些例子中,我将使用 Jupyter notebook):



import numpy as np

接下来,使用 eye() 函数来生成指定维数的单位矩阵:



matrix_One= np.eye(3)

matrix_one

输出如下:



array([[1., 0., 0.],

[0., 1., 0.],

[0., 0., 1.]])

让我们生成另一个 3×3 矩阵。

我们使用 arange([starting number], [stopping number]) 函数来排列数字。注意,函数中的第一个参数是需要列出的初始数字,而后一个数字不包含在生成的结果中。

另外,使用 reshape() 函数把原始生成的矩阵的维度改成我们需要的维度。为了使两个矩阵“可乘”,它们需要有相同的维度。



matrix_two = np.arange(1,10).reshape(3,3)

matrix_two

输出如下:



array([[1, 2, 3],

[4, 5, 6],

[7, 8, 9]])

接下来,使用 dot() 函数将两个矩阵相乘。



matrix_multiply = np.dot(matrix_one, matrix_two)

matrix_multiply

相乘后的输出如下:



array([[1., 2., 3.],

[4., 5., 6.],

[7., 8., 9.]])

太好了!

我们成功使用 NumPy 完成了两个矩阵的相乘,而不是使用普通冗长vanilla的 Python 代码。

下面是这个例子的完整代码:



import numpy as np

#生成一个 3x3 单位矩阵

matrix_One= np.eye(3)

matrix_one

#生成另一个 3x3 矩阵以用来做乘法运算

matrix_two = np.arange(1,10).reshape(3,3)

matrix_two

#将两个矩阵相乘

matrix_multiply = np.dot(matrix_one, matrix_two)

matrix_multiply


Pandas

Pandas 是另一个可以提高你的 Python 数据科学技能的优秀库。就和 NumPy 一样,它属于 SciPy 开源软件家族,可以在 BSD 自由许可证许可下使用。

Pandas 提供了多能而强大的工具,用于管理数据结构和执行大量数据分析。该库能够很好的处理不完整、非结构化和无序的真实世界数据,并且提供了用于整形、聚合、分析和可视化数据集的工具

Pandas 中有三种类型的数据结构:

Series:一维、相同数据类型的数组

DataFrame:二维异型矩阵

Panel:三维大小可变数组

例如,我们来看一下如何使用 Panda 库(缩写成 pd)来执行一些描述性统计计算。

首先导入该库:



import pandas as pd

然后,创建一个序列series字典:



d = {'Name':pd.Series(['Alfrick','Michael','Wendy','Paul','Dusan','George','Andreas',

'Irene','Sagar','Simon','James','Rose']),

'Years of Experience':pd.Series([5,9,1,4,3,4,7,9,6,8,3,1]),

'Programming Language':pd.Series(['Python','Javascript','PHP','C++','Java','Scala','React','Ruby','Angular','PHP','Python','Javascript'])

}

接下来,再创建一个数据框DataFrame:



df = pd.DataFrame(d)

输出是一个非常规整的表:



Name Programming Language Years of Experience

0 Alfrick Python 5

1 Michael Javascript 9

2 Wendy PHP 1

3 Paul C++ 4

4 Dusan Java 3

5 George Scala 4

6 Andreas React 7

7 Irene Ruby 9

8 Sagar Angular 6

9 Simon PHP 8

10 James Python 3

11 Rose Javascript 1

下面是这个例子的完整代码:



import pandas as pd

#创建一个序列字典

d = {'Name':pd.Series(['Alfrick','Michael','Wendy','Paul','Dusan','George','Andreas',

'Irene','Sagar','Simon','James','Rose']),

'Years of Experience':pd.Series([5,9,1,4,3,4,7,9,6,8,3,1]),

'Programming Language':pd.Series(['Python','Javascript','PHP','C++','Java','Scala','React','Ruby','Angular','PHP','Python','Javascript'])

}
#创建一个数据框

df = pd.DataFrame(d)

print(df)


Matplotlib

Matplotlib 也是 Scipy 核心包的一部分,并且在 BSD 许可证下可用。它是一个非常流行的科学库,用于实现简单而强大的可视化。你可以使用这个 Python 数据科学框架来生成曲线图、柱状图、直方图以及各种不同形状的图表,并且不用担心需要写很多行的代码。例如,我们来看一下如何使用 Matplotlib 库来生成一个简单的柱状图。

首先导入该库:



from matplotlib import pyplot as plt

然后生成 x 轴和 y 轴的数值:



x = [2, 4, 6, 8, 10]

y = [10, 11, 6, 7, 4]

接下来,调用函数来绘制柱状图:



plt.bar(x,y)

最后,显示图表:



plt.show()

柱状图如下:


下面是这个例子的完整代码:



#导入 Matplotlib 库

from matplotlib import pyplot as plt

#和 import matplotlib.pyplot as plt 一样
#生成 x 轴的数值

x = [2, 4, 6, 8, 10]
#生成 y 轴的数值

y = [10, 11, 6, 7, 4]
#调用函数来绘制柱状图

plt.bar(x,y)
#显示图表

plt.show()

59*-40.00000000+

630.0000000



总结


Python 编程语言非常擅长数据处理和准备,但是在科学数据分析和建模方面就没有那么优秀了。幸好有这些用于数据科学的顶级 Python 框架填补了这一空缺,从而你能够进行复杂的数学计算以及创建复杂模型,进而让数据变得更有意义。


你还知道其它的 Python 数据挖掘库吗?你的使用经验是什么样的?请在下面的评论中和我们分享。



原文地址:https://linux.cn/article-10080-1.html

3 个用于数据科学的顶级 Python 库的相关教程结束。



推荐阅读
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • Google最新推出的嵌入AI技术的便携式相机Clips现已上架,旨在通过人工智能技术自动捕捉用户生活中值得纪念的时刻,帮助人们减少照片数量过多的问题。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 2023 ARM嵌入式系统全国技术巡讲旨在分享ARM公司在半导体知识产权(IP)领域的最新进展。作为全球领先的IP提供商,ARM在嵌入式处理器市场占据主导地位,其产品广泛应用于90%以上的嵌入式设备中。此次巡讲将邀请来自ARM、飞思卡尔以及华清远见教育集团的行业专家,共同探讨当前嵌入式系统的前沿技术和应用。 ... [详细]
  • 本文介绍如何解决在 IIS 环境下 PHP 页面无法找到的问题。主要步骤包括配置 Internet 信息服务管理器中的 ISAPI 扩展和 Active Server Pages 设置,确保 PHP 脚本能够正常运行。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 在前两篇文章中,我们探讨了 ControllerDescriptor 和 ActionDescriptor 这两个描述对象,分别对应控制器和操作方法。本文将基于 MVC3 源码进一步分析 ParameterDescriptor,即用于描述 Action 方法参数的对象,并详细介绍其工作原理。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
author-avatar
V陈冬梅_717
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有