一文盘点三大顶级Python库(附代码)

来源:开源最前线

本文约1500字,建议阅读5分钟。

本文为你分享最受数据科学青睐的3个顶级的Python库。

Python在许多方面有着强大的吸引力 - 例如效率、代码可读性和速度方面,也正因为如此,对于希望提升应用程序功能的数据科学家和机器学习专家来说,Python通常是首选编程语言。(例如,Andrey Bulezyuk使用Python编程语言创建了一个很牛逼的机器学习应用程序。)

由于其广泛的用途,Python拥有大量的库,使数据科学家可以更轻松地完成复杂的任务,而无需面对很多编程麻烦。以下是最受数据科学青睐的3个顶级的Python库,如果你正需要,那就试试吧。

1. NumPy

NumPy(Numerical Python的缩写)是顶级的库之一,它配备了大量有用的资源来帮助数据科学家将Python变成强大的科学分析和建模工具。这个流行的开源库可以在BSD许可下使用。它是在科学计算中执行任务的基础Python库。NumPy是一个更大的基于python的开源工具生态系统SciPy的一部分。

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

此外,它能够完美集成其他编程语言,如C/ c++和Fortran。NumPy库的多功能性使它能够轻松快速地与各种数据库和工具相结合。例如,让我们看看如何使用NumPy(缩写为np)来相乘两个矩阵。

从导入库开始(对于这些示例,我们将使用Jupyter笔记本)。

import numpy as np

接下来,让我们使用eye()函数生成具有规定维数的单位矩阵:

matrix_one = np.eye(3)
matrix_one

输出结果如下:

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

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

我们将使用arange([起始号码]、[停止号码])函数来排列数字。注意,函数中的第一个参数是要列出的初始数字,最后一个数字不包含在生成的结果中

此外,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.]])

接着,我们设法在不使用vanilla Python的情况下将两个矩阵相乘。以下是此示例的完整代码:

import numpy as np
#generating a 3 by 3 identity matrix
matrix_one = np.eye(3)
matrix_one
#generating another 3 by 3 matrix for multiplication
matrix_two = np.arange(1,10).reshape(3,3)
matrix_two
#multiplying the two arrays
matrix_multiply = np.dot(matrix_one, matrix_two)
matrix_multiply

2. Pandas

panda是另一个可以提高您的Python数据科学技能的大型库。就像NumPy一样,它属于SciPy开源软件家族,并且可以在BSD自由软件许可下使用。

Pandas提供多功能和强大的工具,用于整理数据结构和执行大量数据分析。该库适用于不完整,非结构化和无序的实际数据,并提供了用于整形,聚合,分析和可视化数据集的工具。

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

  • Series:单维阵列
  • DataFrame:具有异构类型列的二维
  • Panel:三维,大小可变数组

例如,让我们看看Panda Python库(缩写为pd)如何用于执行一些描述性统计计算。从导入库开始:

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'])
    }

再创建一个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
#creating a dictionary of 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'])
    }

#Create a DataFrame
df = pd.DataFrame(d)
print(df)

3. Matplotlib

Matplotlib也是SciPy核心软件包的一部分,遵循BSD许可协议。它是一个流行的Python科学库,用于生成简单而强大的可视化。风格类似 Matlab 的基于Python的图表绘图系统,它提供了一整套和 matlab 相似的命令 API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入 GUI 应用程序中。

下面,让我们体会一下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()

生成的条形图如下:

以下是此示例的完整代码:

#importing Matplotlib Python library 
from matplotlib import pyplot as plt
#same as import matplotlib.pyplot as plt

#generating values for x-axis 
x = [2, 4, 6, 8, 10]

#generating vaues for y-axis 
y = [10, 11, 6, 7, 4]

#calling function for plotting the bar chart
plt.bar(x,y)

#showing the plot
plt.show()

Python编程语言在数据处理和准备方面一直做得很好,但在复杂的科学数据分析和建模方面做得就不那么好了。用于数据科学的顶级Python框架有助于填补这一空白,它允许用户执行复杂的数学计算并创建对数据有意义的复杂模型。

你还知道其他哪些Python数据挖掘库?你对他们有什么经验?可以留言和大家分享。

原文发布于微信公众号 - 数据派THU(DatapiTHU)

原文发表时间:2018-10-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏battcn

一起学设计模式 - 策略模式

策略模式: 是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类...

9620
来自专栏生信技能树

【生信菜鸟经】如何系统入门R语言

写在前面 R语言不仅在生物信息数据处理中发挥着重要作用,也是其它主流数据处理人士的首选工具。现在非常多自学生物信息学的小伙伴必须学的就是R,所以写一个R的系统性...

1.5K90
来自专栏熊彪的专栏

精准测分:基于函数调用关系链的用例消振算法 ( 上帝视角 )

地球文明不是孤岛,函数呢?从静态的视角观察函数,她只是一个一个在文件中孤立存在的代码片段。但从动态的视角观察,函数与函数之间就天然的发生了关联。这个关联是怎么产...

25100
来自专栏数据派THU

手把手教你用R处理常见的数据清洗问题(附步骤解析、R语言代码)

R是进行运算、清洗、汇总及生成概率统计等数据处理的一个绝佳选择。此外,由于它独立于平台、短期内不会消失,所以生成的程序可以在任何地方运行。并且,它具备非常棒的辅...

49730
来自专栏小樱的经验随笔

元胞自动机实现多数分类算法

元胞自动机(Cellular automaton) 元胞自动机是由元胞组成的网格,每个元胞都根据邻域的状态来选择开或关。所有的元胞都遵循同样的规则,也称为元胞的...

34450
来自专栏HansBug's Lab

洛谷讲课手稿

Hello大家好,我是洛谷的HansBug。首先自我介绍下,我现在在北京航空航天大学,计算机科学与技术专业读大二,我参加过2013-2015年的提高组NOIP和...

32840
来自专栏opengps

新手入门百度地图开发的(0,0)坐标问题

        对于大部分人来讲,由于百度地图资料众多,过度依赖搜索引擎等等原因。新接触百度地图开发工作其实并不容易。今天说说关于坐标(0,0)的问题。 ...

38690
来自专栏架构师之路

洗稿,技术上怎么判断文章相似性?

这几天“差评洗稿”的事情,闹得沸沸扬扬,楼主本身也是内容创作的手艺人,简单说两句。

20840
来自专栏数据小魔方

R语言数据清洗实战——世界濒危遗产地数据爬取案例

最近重复新翻阅R语言领域唯一一本关于网络数据采集的参考书——《基于R语言的自动数据收集》,开篇就是一个数据爬取的案例。 尽管之前已经粗略的看过一遍,但是仍感书中...

64960
来自专栏牛客网

2018年5月23日滴滴新锐实习电话面试,开发岗位

22900

扫码关注云+社区

领取腾讯云代金券