程序员用于机器学习数据科学的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):
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 库的更多相关文章
- 数据科学20个最好的Python库
Python 在解决数据科学任务和挑战方面继续处于领先地位.去年,我们曾发表一篇博客文章 Top 15 Python Libraries for Data Science in 2017,概述了当时业 ...
- 程序员用于机器学习编程的Python 数据处理库 pandas 进阶教程
数据访问 在入门教程中,我们已经使用过访问数据的方法.这里我们再集中看一下. 注:这里的数据访问方法既适用于Series,也适用于DataFrame. **基础方法:[]和. 这是两种最直观的方法,任 ...
- 程序员用于机器学习编程的Python 数据处理库 pandas 入门教程
入门介绍 pandas适合于许多不同类型的数据,包括: · 具有异构类型列的表格数据,例如SQL表格或Excel数据 · 有序和无序(不一定是固定频率)时间序列数据. · 具有行列标签的任意矩阵数据( ...
- 3 个用于数据科学的顶级 Python 库
使用这些库把 Python 变成一个科学数据分析和建模工具. Python 的许多特性,比如开发效率.代码可读性.速度等使之成为了数据科学爱好者的首选编程语言.对于想要升级应用程序功能的数据科学家和机 ...
- (数据科学学习手札90)Python+Kepler.gl轻松制作时间轮播图
本文示例代码及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 Kepler.gl作为一款强大的开源地理信 ...
- 2018年,Java程序员转型大数据开发,是不是一个好选择?
近日网上有一篇关于Java程序员职场生存现状的文章“2017年 Java 程序员,风光背后的危机”,在Java程序员圈子里引起了广泛关注和热议. 2017年,Java 程序员面临更加激烈的竞争. 不得 ...
- Java程序员转行大数据的优势
大数据时代,中国IT环境也将面临重新洗牌,不仅仅是企业,更是程序员们转型可遇而不可求的机遇. 国内大多数大型互联网公司的程序员被称作研发工程师,但实际上国内几乎没有研发项目,只能叫做开发.开发程序员的 ...
- Java程序员应该知道的20个有用的lib开源库
一般一个经验丰富的开发者,一般都喜欢使用开源的第三方api库来进行开发,毕竟这样能够提高开发效率,并且能够简单快速的集成到项目中去,而不用花更多的时间去在重复造一些无用的轮子,多了解一些第三方库可以提 ...
- (数据科学学习手札136)Python中基于joblib实现极简并行计算加速
本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 我们在日常使用Python进行各种数据计算 ...
随机推荐
- Echarts导出为pdf echarts导出图表(包含背景)
Echarts好像是只支持png和jpg的导出,不支持pdf导出.我就想着只能够将png在后台转为pdf了. 首先介绍一下jsp界面的代码. var thisChart = echarts.init( ...
- mysql中if函数的正确使用姿势
--为了今天要写的内容,运行了将近7个小时的程序,在数据库中存储了1千万条数据.-- 今天要说的是mysql数据库的IF()函数的一个实例. 具体场景如下, 先看看表结构: CREATE TABLE ...
- dbms_job基础
a.创建job: dbms_job.submit(jobno,what,next_date,interval);b.删除job: dbms_job.remove(jobno); c.修改要执行的操作: ...
- 数据后台管理(五)AOP日志
为了增加数据的安全性,在数据管理的过程中,我们需要将操作者访问时间,操作者的名称,访问的IP,访问资源的URL,执行时长,访问方法记录下来存储到数据库中,并可以通过页面查看. 1.将日志信息存储到数据 ...
- Mycat分布式数据库架构解决方案--Mycat实现读写分离
echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 安装完 ...
- 【原创】从零开始搭建Electron+Vue+Webpack项目框架,一套代码,同时构建客户端、web端(二)
摘要:上篇文章说到了如何新建工程,并启动一个最简单的Electron应用.“跑起来”了Electron,那就接着把Vue“跑起来”吧.有一点需要说明的是,webpack是贯穿这个系列始终的,我也是本着 ...
- (Java) AES-128 数据加密
package com.vcgeek.hephaestus.utils; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeyS ...
- VBoxManage.exe: error: Failed to instantiate CLSID_VirtualBox w/ IVirtualBox, CL SID_VirtualBox w/ IUnknown works.
我先把vagrantbox卸载了 重新装了一个 然后提示这个错误 当时我一脸蒙逼 后来经过百度 1, win+r 快捷键打开 “运行”,输入regedit 打开注册表 2,找到 HKEY_CLASSE ...
- python基础-数字类型及内置方法
--数字类型及内置方法 整型-int 用途:多用于年龄.电话.QQ号等变量 定义方法 age = 18 # age = int(18) 常用方式:多用于数学计算 # int(x)将x转换成整数,是向下 ...
- hydra的使用
hydra参数详解 -R 继续从上一次进度接着破解 -S 大写,采用SSL链接 -s 小写,可通过这个参数指定非默认端口 -l 指定破解的用户,对特定用户破解 -L 指定用户名字典 -p 小写,指定密 ...