Py学习  »  Python

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

数据分析与开发 • 5 年前 • 469 次点击  

(点击上方公号,快速关注我们)


英文:Dr. Michael J. Garbade,翻译:Linux中国/Lv Feng

linux.cn/article-10080-1.html


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


输出如下:



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


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


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


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

matrix_two


输出如下:



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


matrix_multiply = np.dot(matrix_one, matrix_two)

matrix_multiply


相乘后的输出如下:



太好了!


我们成功使用 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字典:



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


df = pd.DataFrame(d)


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



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



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


总结


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


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



【关于投稿】


如果大家有原创好文投稿,请直接给公号发送留言。


① 留言格式:
【投稿】+《 文章标题》+ 文章链接

② 示例:
【投稿】
《不要自称是程序员,我十多年的 IT 职场总结》:http://blog.jobbole.com/94148/


③ 最后请附上您的个人简介哈~



看完本文有收获?请转发分享给更多人

关注「数据分析与开发」,提升数据技能


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/K97UfQ7klt
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/24747
 
469 次点击