NumPy

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

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

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

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

  1. 1.import numpy **as** np
  1. 接下来,使用 eye() 函数来生成指定维数的单位矩阵:
  1. 1.matrix_one = np.eye(3)
  2. 2.matrix_one

输出如下:

  1. 1.**array**([[1., 0., 0.],
  2.  
  3. 2. [0., 1., 0.],
  4.  
  5. 3. [0., 0., 1.]])

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

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

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

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

输出如下:

  1. **array**([[1, 2, 3],
  2.  
  3. [4, 5, 6],
  4.  
  5. [7, 8, 9]])

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

  1. 1.matrix_multiply= np.dot(matrix_one, matrix_two)
  2.  
  3. 2.matrix_multiply

相乘后的输出如下:

  1. **array**([[1., 2., 3.],
  2.  
  3. [4., 5., 6.],
  4.  
  5. [7., 8., 9.]])

太好了!

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

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

  1. 1.import numpy as np
  2. 2.#生成一个 3x3 单位矩阵
  3. 3.matrix_one = np.eye(3)
  4. 4.matrix_one
  5. 5.#生成另一个 3x3 矩阵以用来做乘法运算
  6. 6.matrix_two = np.arange(1,10).reshape(3,3)
  7. 7.matrix_two
  8. 8.#将两个矩阵相乘
  9. 9.matrix_multiply = np.dot(matrix_one, matrix_two)
  10. 10.matrix_multiply

Pandas

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

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

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

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

  • DataFrame:二维异型矩阵

  • Panel:三维大小可变数组

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

首先导入该库:

  1. 1.import pandas **as** pd

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

  1. 1.d= 2.{'Name':pd.Series(['Alfrick','Michael','Wendy','Paul','Dusan','George',
  2. 3'Andreas',
  3. 4.'Irene','Sagar','Simon','James','Rose']),
  4. 5.'Years of
  5. Experience':pd.Series([5,9,1,4,3,4,7,9,6,8,3,1]),
  6. 'Programming Language':pd.Series(['Python','JavaScript','PHP','C++','Java','Scala','React','Ruby','Angular','PHP','Python','JavaScript'])
  7. }

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

1.df= pd.DataFrame(d)

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

  1. 1. Name Programming Language Years of Experience
  2. 0 Alfrick Python 5
  3. 1 Michael JavaScript 9
  4. 2 Wendy PHP 1
  5. 3 Paul C++ 4
  6. 4 Dusan Java 3
  7. 5 George Scala 4
  8. 6 Andreas React 7
  9. 7 Irene Ruby 9
  10. 8 Sagar Angular 6
  11. 9 Simon PHP 8
  12. 10 James Python 3
  13. 11 Rose JavaScript 1

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

  1. 1.import pandas **as** pd
  2. 2.#创建一个序列字典
  3. 3.d=
  4. 4{'Name':pd.Series(['Alfrick','Michael','Wendy','Paul','Dusan','George',
  5. 5.'Andreas',
  6. 6'Irene','Sagar','Simon','James','Rose']),
  7. 7.'Years of Experience':pd.Series([5,9,1,4,3,4,7,9,6,8,3,1]),
  8. 8.'Programming 9.Language':pd.Series(['Python','JavaScript','PHP','C++','Java','Scala','React','Ruby','Angular','PHP','Python','JavaScript'])
  9. 0. }
  10. 1.#创建一个数据框
  11. df= pd.DataFrame(d)
  12. print(df)

Matplotlib

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

首先导入该库:

  1. 1.from matplotlib import pyplot **as** plt

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

  1. x= [2, 4, 6, 8, 10]
  2.  
  3. y= [10, 11, 6, 7, 4]

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

  1. plt.bar(x,y)
  1. 最后,显示图表:
  1. plt.show()
  1. 柱状图如下:
  2. 下面是这个例子的完整代码:

导入 Matplotlib 库

  1. from matplotlib import pyplot as plt

和 import matplotlib.pyplot as plt 一样

生成 x 轴的数值

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

生成 y 轴的数值

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

调用函数来绘制柱状图

  1. plt.bar(x,y)

显示图表

  1. plt.show()

  1. 总结
  2. Python 编程语言非常擅长数据处理和准备,但是在科学数据分析和建模方面就没有那么优秀了。幸好有这些用于[数据科学](https://www.liveedu.tv/guides/data-science/)的顶级 Python 框架填补了这一空缺,从而你能够进行复杂的数学计算以及创建复杂模型,进而让数据变得更有意义。
  3. 你还知道其它的 Python 数据挖掘库吗?你的使用经验是什么样的?请在下面的评论中和我们分享一起学习。
  4. 更多Python技术文章请关注2019年,Python技术持续更细(附教程)

程序员用于机器学习数据科学的3个顶级 Python 库的更多相关文章

  1. 数据科学20个最好的Python库

    Python 在解决数据科学任务和挑战方面继续处于领先地位.去年,我们曾发表一篇博客文章 Top 15 Python Libraries for Data Science in 2017,概述了当时业 ...

  2. 程序员用于机器学习编程的Python 数据处理库 pandas 进阶教程

    数据访问 在入门教程中,我们已经使用过访问数据的方法.这里我们再集中看一下. 注:这里的数据访问方法既适用于Series,也适用于DataFrame. **基础方法:[]和. 这是两种最直观的方法,任 ...

  3. 程序员用于机器学习编程的Python 数据处理库 pandas 入门教程

    入门介绍 pandas适合于许多不同类型的数据,包括: · 具有异构类型列的表格数据,例如SQL表格或Excel数据 · 有序和无序(不一定是固定频率)时间序列数据. · 具有行列标签的任意矩阵数据( ...

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

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

  5. (数据科学学习手札90)Python+Kepler.gl轻松制作时间轮播图

    本文示例代码及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 Kepler.gl作为一款强大的开源地理信 ...

  6. 2018年,Java程序员转型大数据开发,是不是一个好选择?

    近日网上有一篇关于Java程序员职场生存现状的文章“2017年 Java 程序员,风光背后的危机”,在Java程序员圈子里引起了广泛关注和热议. 2017年,Java 程序员面临更加激烈的竞争. 不得 ...

  7. Java程序员转行大数据的优势

    大数据时代,中国IT环境也将面临重新洗牌,不仅仅是企业,更是程序员们转型可遇而不可求的机遇. 国内大多数大型互联网公司的程序员被称作研发工程师,但实际上国内几乎没有研发项目,只能叫做开发.开发程序员的 ...

  8. Java程序员应该知道的20个有用的lib开源库

    一般一个经验丰富的开发者,一般都喜欢使用开源的第三方api库来进行开发,毕竟这样能够提高开发效率,并且能够简单快速的集成到项目中去,而不用花更多的时间去在重复造一些无用的轮子,多了解一些第三方库可以提 ...

  9. (数据科学学习手札136)Python中基于joblib实现极简并行计算加速

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 我们在日常使用Python进行各种数据计算 ...

随机推荐

  1. C语言中的isalpha,isdigit,islower,isupper等一系列函数

    TITLE:c语言中的isalpha,isdigit,islower,isupper等一系列函数 已经全部验证检查,无任何错误 isalnum(测试字符是否为英文或数字) 相关函数 isalpha,i ...

  2. Apache Solr Velocity模板注入RCE漏洞复现

    Apache Solr Velocity模板注入RCE漏洞复现 一.Apache Solr介绍 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于web-service的API接口,用户可以通 ...

  3. http和Https简介、详解

    目录 引用 一.HTTP和HTTPS的基本概念 二.HTTP与HTTPS有什么区别? 三.HTTPS的工作原理 四.HTTPS的优点 五.HTTPS的缺点 六.http切换到HTTPS 引用 超文本传 ...

  4. Go调用cpp类

    CGO是C语言和Go语言之间的桥梁,所以GO是没有办法直接使用CPP的类的. 我们可以通过增加一族C语言函数接口作为CPP类和CGO之前的桥梁的,这样 就可以实现C和Go之间的互联. my_buffe ...

  5. Linux 下的 redis安装

    官网下载链接:https://redis.io/download redis安装流程,记录自己的实践,分享给需要的人. 1.选择Stable(5.0)下的Download 5.0.0 链接进行下载 ( ...

  6. [考试反思]1009csp-s模拟测试66:依旧

    依旧是好一场烂一场. 依旧是那么菜. 依旧是难止颓废. 依旧是在此方仰望,幻想? 上面这段中二的东西是为了防止Parisb说我的标题与内容无关而diss我莫名其妙115的语文. 但是菜是的确是菜... ...

  7. 「刷题」Triple

    正解是普通型母函数+FFT. 才学了多项式,做了一道比较好的题了. 首先有三个斧子被偷了. 我们考虑构造一种普通型母函数. 就是说一种多项式吧,我的理解. 系数是方案,下标,也就是所谓的元指数代表的是 ...

  8. 测试工程师,选择python还是java?

    问:“你平时工作中,用java多还是用python多”? 答:“都还可以,根据具体的场景选择不同的语言”. 问:“比如说呢”? 答:“开发自己的测试平台,肯定会选择java:在centos服务器跑一些 ...

  9. python之装饰器的两种写法

    上一篇文章介绍了 装饰器的概念.现在讲一下在程序中怎么来写装饰器.上代码: def X(fun): def Y(b): print(b) fun() return Y def test(): prin ...

  10. Android Studio接谷歌原生登录

    目录 前言 AndroidStudio server_client_id @ 前言 准备 近日,公司要求上线海外市场,需要接入海外SDK,首先上架的是GooglePlay,需要先接入GooglePla ...