数据科学是计算领域一个令人兴奋的新领域,它围绕分析,可视化,关联和解释我们的计算机收集的有关世界的无限信息而建立。 当然,称其为“新”领域有点不屑一顾,因为该学科是统计,数据分析和单纯的老式强迫性科学观察的衍生。

但是,数据科学是这些学科的形式化分支,拥有自己的流程和工具,并且可以广泛应用于以前从未产生过大量不可管理数据的学科(例如视觉效果)。 数据科学是一个全新的机会,可以重新审视海洋学,气象学,地理学,制图学,生物学,医学与健康以及娱乐行业的数据,并更好地了解模式,影响和因果关系。

像其他大型且看似包罗万象的领域一样,知道从哪里开始探索数据科学可能会令人生畏。 有很多资源可以帮助数据科学家使用他们喜欢的编程语言来实现其目标,其中包括最流行的编程语言之一:Python。 使用Pandas , Matplotlib和Seaborn库,您可以学习数据科学的基本工具集。

如果您还不熟悉Python的基础知识,请先阅读我对Python的介绍,然后再继续。

创建Python虚拟环境

要使用venv激活虚拟环境, 为您的环境创建一个名称(我将使用example )并使用以下命令创建它:

 $  python3 -m venv example 

来源环境的bin目录来激活它的激活文件:

$ source . / example / bin / activate
( example ) $

现在,您“处于”虚拟环境中,这是一个干净的状态,您可以在其中构建针对问题的自定义解决方案-额外增加了自觉需要安装所需库的负担。

安装Pandas和NumPy

您必须在新环境中安装的第一个库是Pandas和NumPy。 这些库在数据科学中很常见,因此这不是您最后一次安装它们。 它们也不是您在数据科学中唯一需要的库,但是它们是一个好的开始。

Pandas是BSD许可的开源库,可轻松处理数据结构以进行分析。 它取决于NumPy,这是一个提供多维数组,线性代数,傅立叶变换等的科学图书馆。 使用pip3安装两者:

 ( example ) $ pip3 install pandas 

安装Pandas还会安装NumPy,因此您无需同时指定两者。 一旦将它们安装到虚拟环境中,安装包就会被缓存,这样,当您再次安装它们时,就不必从Internet下载它们。

这些是您现在唯一需要的库。 接下来,您需要一些样本数据。

生成样本数据集

数据科学是关于数据的,幸运的是,科学,计算和政府组织可以提供许多免费和开放的数据集。 虽然这些数据集是教育的重要资源,但它们具有比此简单示例所需的数据更多的数据。 您可以使用Python快速创建示例和可管理的数据集:

#!/usr/bin/env python3

import random

def rgb ( ) :
NUMBER = random . randint ( 0 , 255 ) / 255
return NUMBER

FILE = open ( 'sample.csv' , 'w' )
FILE. write ( '"red","green","blue"' )
for COUNT in range ( 10 ) :
FILE. write ( ' \n {:0.2f},{:0.2f},{:0.2f}' . format ( rgb ( ) , rgb ( ) , rgb ( ) ) )


这将生成一个名为sample.csv的文件,该文件由随机生成的浮点数组成,这些浮点数在本示例中代表RGB值(在视觉效果中通常是数百个跟踪值)。 您可以将CSV文件用作熊猫的数据源。

用熊猫摄取数据

Pandas的基本功能之一是它具有摄取和处理数据的能力,而无需程序员编写仅用于解析输入的新功能。 如果您习惯于自动执行此操作的应用程序,那么这似乎不是很特别,但请想象一下在LibreOffice中打开CSV并必须编写公式以在每个逗号处拆分值。 熊猫使您免受诸如此类的低级操作的影响。 以下是一些简单的代码,可用于提取和打印以逗号分隔的值的文件:

#!/usr/bin/env python3

from pandas import read_csv , DataFrame
import pandas as pd

FILE = open ( 'sample.csv' , 'r' )
DATAFRAME = pd. read_csv ( FILE )
print ( DATAFRAME )


前几行导入了Pandas库的组件。 Pandas库是一个广泛的库,因此在查找除本文基本功能之外的功能时,您会经常参考其文档。

接下来,通过打开您创建的sample.csv文件来创建变量f 。 Pandas模块read_csv (在第二行中导入)使用该变量创建一个dataframe 。 在Pandas中,数据框是二维数组,通常被认为是表格。 将数据放入数据框中后,您可以按列和行进行操作,查询其范围,然后执行更多操作。 目前,示例代码仅将数据帧输出到终端。

运行代码。 您的输出将与此样本输出略有不同,因为数字是随机生成的,但是格式是相同的:

( example ) $ python3 . / parse.py
red  green  blue
0  0.31   0.96  0.47
1  0.95   0.17  0.64
2  0.00   0.23  0.59
3  0.22   0.16  0.42
4  0.53   0.52  0.18
5  0.76   0.80  0.28
6  0.68   0.69  0.46
7  0.75   0.52  0.27
8  0.53   0.76  0.96
9  0.01   0.81  0.79

假设您只需要数据集中的红色值。 您可以通过声明数据框的列名称并有选择地仅打印您感兴趣的列来做到这一点:

from pandas import read_csv , DataFrame
import pandas as pd

FILE = open ( 'sample.csv' , 'r' )
DATAFRAME = pd. read_csv ( FILE )

# define columns
DATAFRAME. columns = [ 'red' , 'green' , 'blue' ]

print ( DATAFRAME [ 'red' ] )


现在运行代码,您将只看到红色的列:

( example ) $ python3 . / parse.py
0    0.31
1    0.95
2    0.00
3    0.22
4    0.53
5    0.76
6    0.68
7    0.75
8    0.53
9    0.01
Name: red , dtype: float64

处理数据表是习惯如何使用Pandas解析数据的好方法。 从数据框中选择数据的方法有很多,而您尝试的次数越多,数据就越自然。

可视化数据

许多人喜欢可视化信息已不是什么秘密。 这是因为图表是与高层管理人员开会的主要内容,也是“信息图表”在新闻界如此流行的原因。 数据科学家的工作之一是帮助其他人理解大量数据样本,并且有一些图书馆可以帮助您完成这项任务。 将熊猫与可视化库结合使用可以对数据进行可视化解释。 Seaborn是一种流行的可视化开源库,它基于开源Matplotlib 。

安装Seaborn和Matplotlib

您的Python虚拟环境还没有Seaborn和Matplotlib,因此请使用pip3安装它们。 Seaborn还安装了Matplotlib以及许多其他库:

 ( example ) $ pip3 install seaborn 

为了使Matplotlib显示图形,您还必须安装PyGObject和Pycairo 。 这涉及到编译代码,只要您安装了必需的头文件和库,pip3便可以为您执行此操作。 您的Python虚拟环境不了解这些支持库,因此您可以在环境内部或外部执行安装命令。

在Fedora和CentOS上:

( example ) $ sudo dnf install -y gcc zlib-devel bzip2 bzip2-devel readline-devel \
sqlite sqlite-devel openssl-devel tk-devel git python3-cairo-devel \
cairo-gobject-devel gobject-introspection-devel

在Ubuntu和Debian上:

( example ) $ sudo apt install -y libgirepository1.0-dev build-essential \
libbz2-dev libreadline-dev libssl-dev zlib1g-dev libsqlite3-dev wget \
curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libcairo2-dev

安装它们之后,您可以安装Matplotlib所需的GUI组件:

 ( example ) $ pip3 install PyGObject pycairo 

使用Seaborn和Matplotlib显示图

在您喜欢的文本编辑器中打开一个名为vizualize.py的文件。 要创建数据的折线图可视化,首先,您必须导入必要的Python模块:在前面的代码示例中使用的Pandas模块:

#!/usr/bin/env python3

from pandas import read_csv , DataFrame
import pandas as pd


接下来,导入Seaborn,Matplotlib和Matplotlib的几个组件,以便您可以配置生成的图形:

import seaborn as sns
import matplotlib
import matplotlib. pyplot as plt
from matplotlib import rcParams

Matplotlib可以将其输出导出为多种格式,包括PDF,SVG或桌面上的GUI窗口。 对于此示例,将输出发送到桌面很有意义,因此必须将Matplotlib后端设置为GTK3Agg。 如果您不使用Linux,则可能需要使用TkAgg后端。

在为GUI窗口设置后端后,设置窗口的大小和Seaborn预设样式:

matplotlib. use ( 'GTK3Agg' )
rcParams [ 'figure.figsize' ] = 11 , 8
sns. set_style ( 'darkgrid' )

现在,您的显示已配置完毕,代码已经很熟悉了。 使用Pandas摄取sample.csv文件,并定义数据框的列:

FILE = open ( 'sample.csv' , 'r' )
DATAFRAME = pd. read_csv ( FILE )
DATAFRAME. columns = [ 'red' , 'green' , 'blue' ]

使用有用格式的数据,您可以将其绘制在图形中。 将每一列用作绘图的输入,然后使用plt.show()在GUI窗口中绘制图形。 plt.legend()参数将列标题与图形上的每一行相关联( loc参数将图例放置在图表之外而不是在图表之上):

for i in DATAFRAME. columns :
DATAFRAME [ i ] . plot ( )

plt. legend ( bbox_to_anchor = ( 1 , 1 ) , loc = 2 , borderaxespad = 1 )
plt. show ( )


运行代码以显示结果。

您的图形可以准确显示CSV文件中包含的所有信息:值在Y轴上,索引号在X轴上,并且可以识别图形中的线,以便您知道它们代表什么。 但是,由于该代码正在跟踪颜色值(至少是假装),所以线条的颜色不仅不直观,而且违反直觉。 如果您永远不需要分析颜色数据,则可能永远不会遇到此问题,但是您一定会遇到类似的问题。 可视化数据时,必须考虑呈现数据的最佳方法,以防止查看者从呈现的内容中推断出虚假信息。

为了解决此问题(并展示一些可用的自定义设置),以下代码为每条绘制的线分配了特定的颜色:

import matplotlib
from pandas import read_csv , DataFrame
import pandas as pd
import seaborn as sns
import matplotlib. pyplot as plt
from matplotlib import rcParams

matplotlib. use ( 'GTK3Agg' )
rcParams [ 'figure.figsize' ] = 11 , 8
sns. set_style ( 'whitegrid' )

FILE = open ( 'sample.csv' , 'r' )
DATAFRAME = pd. read_csv ( FILE )
DATAFRAME. columns = [ 'red' , 'green' , 'blue' ]

plt. plot ( DATAFRAME [ 'red' ] , 'r-' )
plt. plot ( DATAFRAME [ 'green' ] , 'g-' )
plt. plot ( DATAFRAME [ 'blue' ] , 'b-' )
plt. plot ( DATAFRAME [ 'red' ] , 'ro' )
plt. plot ( DATAFRAME [ 'green' ] , 'go' )
plt. plot ( DATAFRAME [ 'blue' ] , 'bo' )

plt. show ( )


这使用特殊的Matplotlib表示法为每列创建两个图。 每列的初始图分配了一种颜色( r代表红色, g代表绿色, b代表蓝色)。 这些是内置的Matplotlib设置。 -表示实线(双破折号,例如r--创建虚线)。 为每个具有相同颜色的列创建第二个图,但是使用o表示点或节点。 为了演示内置的Seaborn主题, 请将 sns.set_style的值更改whitegrid

停用虚拟环境

探索完熊猫并完成绘图后,可以使用deactivate命令停用Python虚拟环境:

( example ) $ deactivate
$

当您想重新使用它时,只需像在本文开始时一样重新激活它即可。 重新激活虚拟环境时,您必须重新安装模块,但是它们是从缓存安装的,而不是从Internet下载的,因此您不必在线。

无限可能

熊猫,Matplotlib,Seaborn和数据科学的真正力量是无穷的潜力,使您能够以有意义和启发性的方式解析,解释和构建数据。 下一步是使用您在本文中学到的新工具探索简单的数据集。 Matplotlib和Seaborn不仅具有折线图,还具有更多的功能,因此,请尝试创建条形图或饼图或完全创建其他图形。

一旦您了解了您的工具集并对如何关联数据有了一些想法,则可能性是无限的。 数据科学是一种寻找隐藏在数据中的故事的新方法。 让开源成为您的媒介。

翻译自: https://opensource.com/article/19/9/get-started-data-science-python

使用Python进行数据科学入门相关推荐

  1. python loadtxt_Python 数据科学入门2:Matplotlib

    第七章 从文件加载数据 很多时候,我们想要绘制文件中的数据. 有许多类型的文件,以及许多方法,你可以使用它们从文件中提取数据来图形化. 在这里,我们将展示几种方法. 首先,我们将使用内置的csv模块加 ...

  2. 【深度之眼Python基础+数据科学入门训练营】第八章 文件、异常和模块

    第八章 文件.异常和模块 实际应用中,我们绝大多数的数据都是通过文件的交互完成的 8.1 文件的读写 8.1.1 文件的打开 文件的打开通用格式 with open("文件路径", ...

  3. 【深度之眼Python基础+数据科学入门训练营】第四章 组合数据类型

    第四章 组合数据类型 4.1 列表 4.1.1 列表的表达 序列类型:内部元素有位置关系,能通过位置序号访问其中元素 列表是一个可以使用多种类型元素,支持元素的增.删.查.改操作的序列类型 ls = ...

  4. Python基础+数据科学入门(三)组合数据类型

    声明:该博客参考深度之眼的视频课程,如有侵权请联系小编删除博文,谢谢! 若总结有所失误,还请见谅,并欢迎及时指出. 组合数据类型 1.1 列表 1.1.1 列表的表达 列表类型:内部元素有位置关系,能 ...

  5. Python基础+数据科学入门(七)

    声明:该博客参考深度之眼的视频课程,如有侵权请联系小编删除博文,谢谢! 若总结有所失误,还请见谅,并欢迎及时指出. 文件.异常和模块 1.1 文件的读写 1.1.1 文件的打开 文件的打开通用格式 w ...

  6. Python基础+数据科学入门(六)类

    声明:该博客参考深度之眼的视频课程,如有侵权请联系小编删除博文,谢谢! 若总结有所失误,还请见谅,并欢迎及时指出. 类-面向对象编程 #创建类 class Cat(): #初始化属性def __ini ...

  7. Python 数据科学入门

    http://python.jobbole.com/85394/ Python 在数据科学领域越来越流行了.它的流行不无道理. Python 容易学,有超强数据科学库,并且和 Hadoop 以及 Sp ...

  8. 有前途的人工智能大数据分析相关职业:Python数据科学入门之路

    2019独角兽企业重金招聘Python工程师标准>>> 为什么学习Python数据科学? Python是数据科学职业所需的宝贵技能之一.Python是数据科学的首选编程语言. 201 ...

  9. Python 数据科学入门教程:机器学习:回归

    Python 数据科学入门教程:机器学习:回归 原文:Regression - Intro and Data 译者:飞龙 协议:CC BY-NC-SA 4.0 引言和数据 欢迎阅读 Python 机器 ...

最新文章

  1. linux服务管理命令systemctl
  2. 全志a64linux内核编译,芯灵思Sinlinx A64 Linuxqt编译安装
  3. Web service是什么?
  4. Python基础 模块
  5. 推荐系统笔记:基于模型的协同过滤
  6. html——黑体、斜体、下划线及删除线
  7. 深入浅出设计模式_深入浅出设计模式03接口隔离原则
  8. 【Android】自定义环形菜单View
  9. leetcode1504. 统计全 1 子矩形(动态规划)
  10. mysql 添加唯一索引_浅谈Mysql索引
  11. alexa技能个数_如何改善Alexa技能的对话流程
  12. linux安装 gcc 7.2.0,centos7 安装 gcc-6.2.0
  13. springboot static访问不到_Spring Boot 的静态资源处理
  14. 判断两个字符串是否相似的函数 AnsiResemblesText 专题研究
  15. Mysql执行计划2
  16. 单页面应用(SPA)与多页面应用(MPA)的区别对比
  17. MySoft.Data入门篇:编写业务逻辑
  18. 计算机图形学的未来前景,计算机图形学的发展前景
  19. 网络模型早停earlystopping详解
  20. 【数学知识】方差、标准差、均方差、均方误差区别总结

热门文章

  1. 游戏服务器架构与性能优化相关的一些问题
  2. css动画制作幻灯片
  3. 用百度进行爬虫练习和常见的问题
  4. Linux_SSH服务器状态
  5. Go Modules详解
  6. 记一下Shiro重构之ShiroConfig配置文件
  7. 【Deep Learning 2】BGD梯度下降算法
  8. 三国战纪-风云再起----回忆当年心中的风云
  9. 惠普自动化测试软件官网,惠普最新测试管理工具 HP ALM 11.0 详细介绍
  10. 计算机未来目标作文,未来的电脑作文800字