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

输出如下:

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

 2.           [0., 1., 0.],

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

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

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

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

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

2.matrix_two

输出如下:

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

           [4, 5, 6],

           [7, 8, 9]])

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

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

2.matrix_multiply

相乘后的输出如下:

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

           [4., 5., 6.],

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

太好了!

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

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

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

Pandas

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

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

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

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

  • DataFrame:二维异型矩阵

  • Panel:三维大小可变数组

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

首先导入该库:

1.import pandas **as** pd

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

1.d= 2.{'Name':pd.Series(['Alfrick','Michael','Wendy','Paul','Dusan','George',
3'Andreas',
4.'Irene','Sagar','Simon','James','Rose']),
5.'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:

1.df= pd.DataFrame(d)

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

1.      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

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

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

Matplotlib

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

首先导入该库:

1.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 编程语言非常擅长数据处理和准备,但是在科学数据分析和建模方面就没有那么优秀了。幸好有这些用于[数据科学](https://www.liveedu.tv/guides/data-science/)的顶级 Python 框架填补了这一空缺,从而你能够进行复杂的数学计算以及创建复杂模型,进而让数据变得更有意义。 你还知道其它的 Python 数据挖掘库吗?你的使用经验是什么样的?请在下面的评论中和我们分享一起学习。 更多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. Echarts导出为pdf echarts导出图表(包含背景)

    Echarts好像是只支持png和jpg的导出,不支持pdf导出.我就想着只能够将png在后台转为pdf了. 首先介绍一下jsp界面的代码. var thisChart = echarts.init( ...

  2. mysql中if函数的正确使用姿势

    --为了今天要写的内容,运行了将近7个小时的程序,在数据库中存储了1千万条数据.-- 今天要说的是mysql数据库的IF()函数的一个实例. 具体场景如下, 先看看表结构: CREATE TABLE ...

  3. dbms_job基础

    a.创建job: dbms_job.submit(jobno,what,next_date,interval);b.删除job: dbms_job.remove(jobno); c.修改要执行的操作: ...

  4. 数据后台管理(五)AOP日志

    为了增加数据的安全性,在数据管理的过程中,我们需要将操作者访问时间,操作者的名称,访问的IP,访问资源的URL,执行时长,访问方法记录下来存储到数据库中,并可以通过页面查看. 1.将日志信息存储到数据 ...

  5. Mycat分布式数据库架构解决方案--Mycat实现读写分离

    echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 安装完 ...

  6. 【原创】从零开始搭建Electron+Vue+Webpack项目框架,一套代码,同时构建客户端、web端(二)

    摘要:上篇文章说到了如何新建工程,并启动一个最简单的Electron应用.“跑起来”了Electron,那就接着把Vue“跑起来”吧.有一点需要说明的是,webpack是贯穿这个系列始终的,我也是本着 ...

  7. (Java) AES-128 数据加密

    package com.vcgeek.hephaestus.utils; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeyS ...

  8. VBoxManage.exe: error: Failed to instantiate CLSID_VirtualBox w/ IVirtualBox, CL SID_VirtualBox w/ IUnknown works.

    我先把vagrantbox卸载了 重新装了一个 然后提示这个错误 当时我一脸蒙逼 后来经过百度 1, win+r 快捷键打开 “运行”,输入regedit 打开注册表 2,找到 HKEY_CLASSE ...

  9. python基础-数字类型及内置方法

    --数字类型及内置方法 整型-int 用途:多用于年龄.电话.QQ号等变量 定义方法 age = 18 # age = int(18) 常用方式:多用于数学计算 # int(x)将x转换成整数,是向下 ...

  10. hydra的使用

    hydra参数详解 -R 继续从上一次进度接着破解 -S 大写,采用SSL链接 -s 小写,可通过这个参数指定非默认端口 -l 指定破解的用户,对特定用户破解 -L 指定用户名字典 -p 小写,指定密 ...