网站性能检测评分
注:本网站页面html检测工具扫描网站中存在的基本问题,仅供参考。
python数据分析开源
10大Python开源项目推荐 推广视频课程
▌Rank 1:Requests-HTML v0.9(7385 stars on Github,来自Kenneth Reitz)
该库旨在尽可能简单直观地解析 HTML,仅支持 Python 3.6。
项目地址:https://github/kennethreitz/requests-html
▌Rank 2:PyTest v3.5(2453 stars on Github,来自Pytest-dev)
该项目是一个可扩展的 Python 框架,可以轻松编写小型测试,支持更复杂的功能测试。
项目地址:https://github/pytest-dev/pytest
▌Rank 3:Lector(327 stars on Github,来自BasioMeusPuga)
基于 Qt 的电子书阅读器
项目地址:https://github/BasioMeusPuga/Lector
▌Rank 4:Asciinema v2.0(5491 stars on Github,来自Asciinema)
Python 编写的终端会话录制器。
项目地址:https://github/asciinema/asciinema
▌Rank 5:Snips-nlu v0.13(1416 stars on Github,来自Snips)
Snips-nlu 是一个 Python 库,可以解析用自然语言编写的句子并提取结构化信息。
项目地址:https://github/snipsco/snips-nlu
▌Rank 6:Black(1665 stars on Github,来自ukasz Langa)
Python 代码格式化工具库。
项目地址:https://github/ambv/black
▌Rank 7:Instagram-terminal-news-feed(690 stars on Github,来自Bill Cheng)
Instagram Terminal Feed
项目地址:https://github/billcccheng/instagram-terminal-news-feed
▌Rank 8:Makesite(481 stars on Github,来自Sunaina Pai)
适合 Python 工程师的简单、轻量级静态网站/博客生成器。
项目地址:https://github/sunainapai/makesite
▌Rank 9:Twitter-scraper(832 stars on Github,来自Kenneth Reitz)
Python 写的 Twitter 爬虫工具,无 API 流速限制,非常高效,可轻松获取任何用户的推文。
项目地址:https://github/kennethreitz/twitter-scraper
▌Rank 10:Fast-Pandas(667 stars on Github,来自M. Mansour)
Pandas 是为数据科学家和开发人员提供的最灵活、最强大的工具之一。开发者可通过几种方式执行特定的任务。Fast-Pandas 旨在针对这些情况下的不同可用方法进行基准测试。此外,在 numpy 和 pandas 中都有专门的功能部分。
项目地址:https://github/mm-mansour/Fast-Pandas
原文地址:https://medium.mybridge.co/python-top-10-open-source-of-the-month-v-apr-2018-9e91343756a
GitHub 上最火的 Python 开源项目 行业视频课程
许多开发者都有定期浏览 GitHub 的习惯,对于 GitHub 上如此众多的项目,有人不断分享,有人不断 Mark。每个人浏览的时候,都会注意到 Star 的数量,它代表着这个项目的热度,今天,我们依照 Star 数,盘点 GitHub 上Python 语言中最火的 15 个开源项目,希望对你有帮助,排名如下:
1
机器学习系统 tensorflow
https://github/tensorflow/tensorflowStar 68481
Google 的 TensorFlow 是最流行的开源 AI 库之一。它的高计算效率,丰富的开发资源使它被企业和个人开发者广泛采用。TensorFlow 是一个采用数据流图,用于数值计算的开源软件库。TensorFlow 最初由Google 大脑小组(隶属于 Google 机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
2
oh-my-zsh
https://github/robbyrussell/oh-my-zshStar 58473
oh-my-zsh 是基于 zsh 的功能做了一个扩展,方便的插件管理、主题自定义,以及漂亮的自动完成效果。 Zsh 和 bash 一样,是一种 Unix shell,但大多数 Linux 发行版本都默认使用 bash shell。但 Zsh 有强大的自动补全参数、文件名、等功能和强大的自定义配置功能。
3
命令行 HTTP 工具包 httpie
https://github/jakubroztocil/httpieStar 31248
HTTPie 是一个命令行 HTTP 客户端,提供命令行交互方式来访问 HTTP 服务。其目标是使CLI 与 Web 服务的交互尽可能人性化。它提供了一个简单的 http 命令,允许使用简单自然的语法发送任意 HTTP 请求。
4
shell 命令行拓展 thefuck
https://github/nvbn/thefuckhttps://github/nvbn/thefuckStar 30532
首先这个项目的名字就很引人注目,取名为 thefuck 的原因是任何情况下你想说“我操”,你都可以用得到 thefuck。theFuck 是一个高可配置的应用,用户可以开启或关闭规则、配置 UI、设置规则选项还有进行其他的操作。Fuck 的 UI 很简单,它允许用户通过(上下)箭头的方式在修正过的命令列表中进行选择,使用 Enter 来确认选择,Ctrl+C 来跳出程序。 不足的是在 Python 标准库中没有办法在非 Windows 下不通过 curses 来读取键盘输入
5
微型 Python 框架 Flask
https://github/pallets/flaskStar 29399
Flask 是一个微型的 Python 开发的 Web 框架,基于Werkzeug WSGI工具箱和Jinja2 模板引擎。 Flask 使用 BSD 授权。 Flask 也被称为“microframework”,因为它使用简单的核心,用 extension 增加其他功能。Flask 没有默认使用的数据库、窗体验证工具。然而,Flask 保留了扩增的弹性,可以用 Flask-extension 加入这些功能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。
6
Python Web 框架 Django
https://github/django/djangoStar 27899
Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 Web 应用程序框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV 模式。使用 Django,我们在几分钟之内就可以创建高品质、易维护、数据库驱动的应用程序。
7
jQuery-File-Upload
https://github/blueimp/jQuery-File-UploadStar 27398
jQuery File Upload 是一个 jQuery 图片上传组件,支持多文件上传、取消、删除,上传前缩略图预览、列表显示图片大小,支持上传进度条显示;支持各种动态语言开发的服务器端。
8
Python 的 HTTP 客户端库 requests
https://github/requests/requestsStar 27210
requests 是 Python 的一个 HTTP 客户端库,跟 urllib,urllib2 类似,那为什么要用 requests 而不用 urllib2 呢?以为 Python 的标准库 urllib2 提供了大部分需要的 HTTP 功能,但是API太逆天了,一个简单的功能就需要一大堆代码。看了 requests 的文档,确实很简单,尤其适合懒人。
9
计算机系统配置管理器 ansible
https://github/ansible/ansibleStar 25132
Ansible 提供一种最简单的方式用于发布、管理和编排计算机系统的工具,你可在数分钟内搞定。Ansible 是一个模型驱动的配置管理器,支持多节点发布、远程任务执行。默认使用 SSH 进行远程连接。无需在被管理节点上安装附加软件,可使用各种编程语言进行扩展。
10
Web 爬虫框架 scrapy
https://github/scrapy/scrapyStar 22407
Scrapy 是 Python 开发的一个快速,高层次的屏幕抓取和 Web 抓取框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
Scrapy 吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如 BaseSpider、sitemap 爬虫等。
11
Python 的机器学习项目 scikit-learn
https://github/scikit-learn/scikit-learnStar 20908
scikit-learn 是一个 Python 的机器学习项目。是一个简单高效的数据挖掘和数据分析工具。基于 NumPy、SciPy 和 matplotlib 构建。基于 BSD 源许可证。scikit-learn 的基本功能主要被分为六个部分,分类,回归,聚类,数据降维,模型选择,数据预处理。
12
神经网络库 keras
https://github/fchollet/kerasStar 19132
Keras 是一个极简的、高度模块化的神经网络库,采用 Python(Python 2.7-3.5.)开发,能够运行在 TensorFlow 和 Theano 任一平台,好项目旨在完成深度学习的快速开发。keras 的几大特点:文档齐全、上手快速、纯 Python 编写、关注度高更新迅速、论坛活跃、就是运行速度不太快,当然,有的人就是不 care 速度。
13
Web 服务器 Tornado
https://github/tornadoweb/tornadoStar14178
Tornado 是使用 Python 开发的全栈式(full-stack)Web框架和异步网络库,最早由 Friendfeed 开发。通过使用非阻塞 IO,Tornado 可以处理数以万计的开放连接,是 long polling、WebSockets 和其他需要为用户维护长连接应用的理想选择。Tornado 跟其他主流的Web服务器框架(主要是 Python 框架)不同是采用 epoll 非阻塞 IO,响应快速,可处理数千并发连接,特别适用用于实时的 Web 服务。
14
Python 解释器 CPython
https://github/python/cpythonStar 12609
CPython 是用C语言实现的 Python 解释器,也是官方的并且是最广泛使用的Python解释器。除了 CPython 以外,还有用 JAVA 实现的 Jython 和用 .NET 实现的 IronPython,使 Python 方便地和 JAVA 程序、.NET 程序集成。另外还有一些实验性的 Python 解释器比如 PyPy。
CPython 是使用字节码的解释器,任何程序源代码在执行之前先要编译成字节码。它还有和几种其它语言(包括C语言)交互的外部函数接口。
工具包 CNTK
https://github/Microsoft/CNTKStar 12225
来自微软公司的 CNTK 工具包的效率,“比我们所见过的都要疯狂”。 这部分归功于 CNTK 可借助图形处理单元(GPU)的能力,微软自称是唯一公开“可扩展 GPU”功能的公司。(从单机上的 1 个、延伸至超算上的多个) 在与该公司的网络化 GPU 系统(称之为Azure GPU Lab)匹配之后,它将能够训练深度神经网络来识别语音,让 Cortana 虚拟助理的速度达到以前的十倍。 去年 4 月的时候,CNTK 就已经面向研究人员开放,只是当时的开源授权限制颇多。不过现在,它已经彻底开放了,而深度学习的初创者们将最为受益。
来自:开源中国
-end-
往期回顾:
iPhone8 下周出击,吓得我捂紧了我的肾!以后,在微信里管好自己的嘴,千万别妄议!
做CIO难!做不踩“坑”的CIO更难!
Gartner发布技术成熟曲线:“你刚被人工智能洗脑,最聪明的钱已转向这16项技术”
记一次惊心动魄的 DNS 缓存引发的惨案
发现·前沿 《海外风向标》 | 对话·精英 《CXO百脑汇》| 聚焦·行业 《早安,IDG》| 每周精彩内容,尽在e行网。
2018年最火的5大Python开源项目,总有适合你的! 公司视频课程
前几天看到一条新闻,说是高中生课程里面开设python课程了,这小孩子都来抢占市场了,这就是打了很多人的脸,特别是已经毕业很多年或者正在学校的人,小孩子都作为标准的教材来学习了,作为过来人还有什么理由说学不好。让自己做得多说的少最合适。
说到python现在处于风口期,相对来说入门也比较容易。在人工智能以及大数据分析上都具备很强的特性。
Python语言易学易学,高效开发。Python语言开发的开源项目非常活跃。下面是五个最活跃的Python开源项目。
1)排名第一,当然是关于机器学习谷歌开源项目tensorflow,TensorFlow是一个对数值计算的数据流图,对开源项目的统计,这个项目被宣布与一百万星和叉,被广泛应用于机器学习和深度神经网络研究。
2)第二个地方是python的新烧瓶。烧瓶是一个小型的Python Web开发框架。它是基于WSGI工具箱和jinja2模板引擎,它可以配置和开发Python网站最灵活快速的。
3。)第三的地方是在Python Web方向的经典Django,和Django Web框架,采用m-v-t设计模式。在Django,由于控制器接受用户输入部分由框架本身的处理,所以Django编程更侧重于模型(模型)、模板(模板)和视图(视图)。小编推荐一个学Python的学习裙【五八八,零九零,九四二】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有很多干货和技术分享使用Django,我们可以快速创建高质量、易维护、数据库驱动的Web服务程序,特别是与学生建立数据库的操作不是很熟悉,宝。
4)是Python的成熟,功能齐全的排在功能测试框架pytest pytest测试框架第四,可以帮助你更好的编写自动化测试程序,它可以适应全功能测试,集成测试复杂,从简单的单元测试,以及众多的支持插件开发。
5)在数据收集工具Scrapy排名第五,Scrapy是一个优秀的数据网络爬虫框架,用户只需要定制几个模块的开发可以实现完美的网络爬虫容易,使用它来抓取网页内容的数据和各种图像文件等非常方便;Scrapy还提供各种履带式基础的类型,如basespider和站点;Scrapy被广泛应用于数据挖掘、网络监控和自动测试等。
以上排名是基于代码提交和叉活动的排名,只反映了开源代码的流行,企业市场应用不热,注意差异,你必须根据自己的需要选择适合你的项目的python开源框架和工具。
不管你是怀着什么目的,求职加薪,或者是兴趣。首先你得准备吃苦的思想准备。学编程语言是枯燥的,得持之以恒。如果学python都是从入门到放弃,那么学其它东西会更难。
还需要有些自学能力,出现问题,自己尝试解决。多加练习,在练习和不断挫折中理解和掌握,熟能生巧。
不要急躁,真正能为你所用的技能,不是一朝一夕速成的。真正能被你吸收的养分,不是别人嚼烂了给你。你自己体会到的知识,才会被你吸收,在大脑里停留许久。
TOP 3大开源Python数据分析工具! 行业视频课程
[来自IT168] 【IT168 评论】在大数据库领域,Python是最常被使用的编程语言,因此了解与其相关的数据分析工具是很有必要的。如果你正在使用virtualenv、pyenv或其他变体在自己的环境中运行Python,那么,可以尝试本文推荐的三大开源工具。 (注:本文示例使用IPython,如果感兴趣,请确保已经安装) $ mkdir python-big-data $ cd python-big-data $ virtualenv ../venvs/python-big-data $ source ../venvs/python-big-data/bin/activate $ pip install ipython $ pip install pandas $ pip install pyspark $ pip install scikit-learn $ pip install scipy 本文选取的示例数据是最近几天从某网站获取的实际生产日志数据,从技术层面来看,这些数据并不能算作是大数据,因为它的大小只有大约2Mb,但就演示来说已经足够了。 如果你想获取这些示例数据,可以使用git从作者的公共GitHub存储库中下载:admintome / access-log-data $ git clone https://github/admintome/access-log-data.git 数据是一个简单的CSV文件,因此每行代表一个单独的日志,字段用逗号分隔: 2018-08-01 17:10,'www2','www_access','172.68.133.49 - - [01/Aug/2018:17:10:15 +0000] "GET /wp-content/uploads/2018/07/spark-mesos-job-complete-1024x634.png HTTP/1.0" 200 151587 "https://dzone/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"' 以下是日志行架构:
由于对数据可执行的操作的复杂性不确定,因此本文重点选取加载数据和获取数据样本两个操作来讲解三个工具。 1、Python Pandas 我们讨论的第一个工具是Python Pandas。正如它的网站所述,Pandas是一个开源的Python数据分析库。它最初由AQR Capital Management于2008年4月开发,并于2009年底开源,目前由专注于Python数据包开发的PyData开发团队继续开发和维护,属于PyData项目的一部分。Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。 首先,启动IPython并对示例数据进行一些操作。(因为pandas是python的第三方库所以使用前需要安装一下,直接使用pip install pandas 就会自动安装pandas以及相关组件)
import pandas as pd headers = ["datetime", "source", "type", "log"] df = pd.read_csv('access_logs_parsed.csv', quotechar="'", names=headers) 大约一秒后,我们会收到如下回复: [6844 rows x 4 columns] In [3]: 如上所见,我们有大约7000行数据,它从中找到了四个与上述模式匹配的列。 Pandas自动创建了一个表示CSV文件的DataFrame对象,Pandas中的DataFrame数据既可以存储在SQL数据库中,也可以直接存储在CSV文件中。接下来我们使用head()函数导入数据样本。 In [11]: df.head() Out[11]: datetime source type log 0 2018-08-01 17:10 www2 www_access 172.68.133.49 - - [01/Aug/2018:17:10:15 +0000]... 1 2018-08-01 17:10 www2 www_access 162.158.255.185 - - [01/Aug/2018:17:10:15 +000... 2 2018-08-01 17:10 www2 www_access 108.162.238.234 - - [01/Aug/2018:17:10:22 +000... 3 2018-08-01 17:10 www2 www_access 172.68.47.211 - - [01/Aug/2018:17:10:50 +0000]... 4 2018-08-01 17:11 www2 www_access 141.101.96.28 - - [01/Aug/2018:17:11:11 +0000]... 使用Python Pandas可以做很多事情, 数据科学家通常将Python Pandas与IPython一起使用,以交互方式分析大量数据集,并从该数据中获取有意义的商业智能。 2、PySpark 我们讨论的第二个工具是PySpark,该工具来自Apache Spark项目的大数据分析库。 PySpark提供了许多用于在Python中分析大数据的功能,它自带shell,用户可以从命令行运行。 $ pyspark 这会加载pyspark shell: (python-big-data)[email protected]:~/Development/access-log-data$ pyspark Python 3.6.5 (default, Apr 1 2018, 05:46:30) [GCC 7.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. 2018-08-03 18:13:38 WARN Utils:66 - Your hostname, admintome resolves to a loopback address: 127.0.1.1; using 192.168.1.153 instead (on interface enp0s3) 2018-08-03 18:13:38 WARN Utils:66 - Set SPARK_LOCAL_IP if you need to bind to another address 2018-08-03 18:13:39 WARN NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Setting default log level to "WARN". To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /__ / .__/\_,_/_/ /_/\_\ version 2.3.1 /_/ Using Python version 3.6.5 (default, Apr 1 2018 05:46:30) SparkSession available as 'spark'. >>> 当你启动shell时,你会得到一个Web GUI查看你的工作状态,只需浏览到http:// localhost:4040即可获得PySpark Web GUI。
让我们使用PySpark Shell加载示例数据: dataframe = spark.read.format("csv").option("header","false").option("mode","DROPMALFORMED").option("quote","'").load("access_logs.csv") dataframe.show() PySpark提供了已创建的DataFrame示例: >>> dataframe2.show() +----------------+----+----------+--------------------+ | _c0| _c1| _c2| _c3| +----------------+----+----------+--------------------+ |2018-08-01 17:10|www2|www_access|172.68.133.49 - -...| |2018-08-01 17:10|www2|www_access|162.158.255.185 -...| |2018-08-01 17:10|www2|www_access|108.162.238.234 -...| |2018-08-01 17:10|www2|www_access|172.68.47.211 - -...| |2018-08-01 17:11|www2|www_access|141.101.96.28 - -...| |2018-08-01 17:11|www2|www_access|141.101.96.28 - -...| |2018-08-01 17:11|www2|www_access|162.158.50.89 - -...| |2018-08-01 17:12|www2|www_access|192.168.1.7 - - [...| |2018-08-01 17:12|www2|www_access|172.68.47.151 - -...| |2018-08-01 17:12|www2|www_access|192.168.1.7 - - [...| |2018-08-01 17:12|www2|www_access|141.101.76.83 - -...| |2018-08-01 17:14|www2|www_access|172.68.218.41 - -...| |2018-08-01 17:14|www2|www_access|172.68.218.47 - -...| |2018-08-01 17:14|www2|www_access|172.69.70.72 - - ...| |2018-08-01 17:15|www2|www_access|172.68.63.24 - - ...| |2018-08-01 17:18|www2|www_access|192.168.1.7 - - [...| |2018-08-01 17:18|www2|www_access|141.101.99.138 - ...| |2018-08-01 17:19|www2|www_access|192.168.1.7 - - [...| |2018-08-01 17:19|www2|www_access|162.158.89.74 - -...| |2018-08-01 17:19|www2|www_access|172.68.54.35 - - ...| +----------------+----+----------+--------------------+ only showing top 20 rows 我们再次看到DataFrame中有四列与我们的模式匹配,DataFrame此处可以被视为数据库表或Excel电子表格。 3、Python SciKit-Learn 任何关于大数据的讨论都会引发关于机器学习的讨论,幸运的是,Python开发人员有很多选择来使用机器学习算法。 在没有详细介绍机器学习的情况下,我们需要获得一些执行机器学习的数据,我在本文中提供的示例数据不能正常工作,因为它不是数字类型的数据。我们需要操纵数据并将其呈现为数字格式,这超出了本文的范围,例如,我们可以按时间映射日志以获得具有两列的DataFrame:一分钟内的日志数和当前时间: +------------------+---+ | 2018-08-01 17:10 | 4 | +------------------+---+ | 2018-08-01 17:11 | 1 | +------------------+---+ 通过这种形式的数据,我们可以执行机器学习算法来预测未来可能获得的访客数量,SciKit-Learn附带了一些样本数据集,我们可以加载一些示例数据,来看一下具体如何运作。 In [1]: from sklearn import datasets In [2]: iris = datasets.load_iris() In [3]: digits = datasets.load_digits() In [4]: print(digits.data) [[ 0. 0. 5. ... 0. 0. 0.] [ 0. 0. 0. ... 10. 0. 0.] [ 0. 0. 0. ... 16. 9. 0.] ... [ 0. 0. 1. ... 6. 0. 0.] [ 0. 0. 2. ... 12. 0. 0.] [ 0. 0. 10. ... 12. 1. 0.]] 这将加载两个用于机器学习分类的算法,用于对数据进行分类。 结论 在大数据领域,Python、R以及Scala是主要的参与者,开源社区中有不少针对这三者的工具,国内互联网企业一向很喜欢基于开源工具自研,选择之前不妨做好功课,抽取使用人数较多且应用场景最接近实际需求的方案。
TOP 3大开源Python数据分析工具! 公司视频课程
[来自IT168] 【IT168 评论】在大数据库领域,Python是最常被使用的编程语言,因此了解与其相关的数据分析工具是很有必要的。如果你正在使用virtualenv、pyenv或其他变体在自己的环境中运行Python,那么,可以尝试本文推荐的三大开源工具。 (注:本文示例使用IPython,如果感兴趣,请确保已经安装) $ mkdir python-big-data $ cd python-big-data $ virtualenv ../venvs/python-big-data $ source ../venvs/python-big-data/bin/activate $ pip install ipython $ pip install pandas $ pip install pyspark $ pip install scikit-learn $ pip install scipy 本文选取的示例数据是最近几天从某网站获取的实际生产日志数据,从技术层面来看,这些数据并不能算作是大数据,因为它的大小只有大约2Mb,但就演示来说已经足够了。 如果你想获取这些示例数据,可以使用git从作者的公共GitHub存储库中下载:admintome / access-log-data $ git clone https://github/admintome/access-log-data.git 数据是一个简单的CSV文件,因此每行代表一个单独的日志,字段用逗号分隔: 2018-08-01 17:10,'www2','www_access','172.68.133.49 - - [01/Aug/2018:17:10:15 +0000] "GET /wp-content/uploads/2018/07/spark-mesos-job-complete-1024x634.png HTTP/1.0" 200 151587 "https://dzone/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"' 以下是日志行架构:
由于对数据可执行的操作的复杂性不确定,因此本文重点选取加载数据和获取数据样本两个操作来讲解三个工具。 1、Python Pandas 我们讨论的第一个工具是Python Pandas。正如它的网站所述,Pandas是一个开源的Python数据分析库。它最初由AQR Capital Management于2008年4月开发,并于2009年底开源,目前由专注于Python数据包开发的PyData开发团队继续开发和维护,属于PyData项目的一部分。Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。 首先,启动IPython并对示例数据进行一些操作。(因为pandas是python的第三方库所以使用前需要安装一下,直接使用pip install pandas 就会自动安装pandas以及相关组件)
import pandas as pd headers = ["datetime", "source", "type", "log"] df = pd.read_csv('access_logs_parsed.csv', quotechar="'", names=headers) 大约一秒后,我们会收到如下回复: [6844 rows x 4 columns] In [3]: 如上所见,我们有大约7000行数据,它从中找到了四个与上述模式匹配的列。 Pandas自动创建了一个表示CSV文件的DataFrame对象,Pandas中的DataFrame数据既可以存储在SQL数据库中,也可以直接存储在CSV文件中。接下来我们使用head()函数导入数据样本。 In [11]: df.head() Out[11]: datetime source type log 0 2018-08-01 17:10 www2 www_access 172.68.133.49 - - [01/Aug/2018:17:10:15 +0000]... 1 2018-08-01 17:10 www2 www_access 162.158.255.185 - - [01/Aug/2018:17:10:15 +000... 2 2018-08-01 17:10 www2 www_access 108.162.238.234 - - [01/Aug/2018:17:10:22 +000... 3 2018-08-01 17:10 www2 www_access 172.68.47.211 - - [01/Aug/2018:17:10:50 +0000]... 4 2018-08-01 17:11 www2 www_access 141.101.96.28 - - [01/Aug/2018:17:11:11 +0000]... 使用Python Pandas可以做很多事情, 数据科学家通常将Python Pandas与IPython一起使用,以交互方式分析大量数据集,并从该数据中获取有意义的商业智能。 2、PySpark 我们讨论的第二个工具是PySpark,该工具来自Apache Spark项目的大数据分析库。 PySpark提供了许多用于在Python中分析大数据的功能,它自带shell,用户可以从命令行运行。 $ pyspark 这会加载pyspark shell: (python-big-data)[email protected]:~/Development/access-log-data$ pyspark Python 3.6.5 (default, Apr 1 2018, 05:46:30) [GCC 7.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. 2018-08-03 18:13:38 WARN Utils:66 - Your hostname, admintome resolves to a loopback address: 127.0.1.1; using 192.168.1.153 instead (on interface enp0s3) 2018-08-03 18:13:38 WARN Utils:66 - Set SPARK_LOCAL_IP if you need to bind to another address 2018-08-03 18:13:39 WARN NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Setting default log level to "WARN". To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /__ / .__/\_,_/_/ /_/\_\ version 2.3.1 /_/ Using Python version 3.6.5 (default, Apr 1 2018 05:46:30) SparkSession available as 'spark'. >>> 当你启动shell时,你会得到一个Web GUI查看你的工作状态,只需浏览到http:// localhost:4040即可获得PySpark Web GUI。
让我们使用PySpark Shell加载示例数据: dataframe = spark.read.format("csv").option("header","false").option("mode","DROPMALFORMED").option("quote","'").load("access_logs.csv") dataframe.show() PySpark提供了已创建的DataFrame示例: >>> dataframe2.show() +----------------+----+----------+--------------------+ | _c0| _c1| _c2| _c3| +----------------+----+----------+--------------------+ |2018-08-01 17:10|www2|www_access|172.68.133.49 - -...| |2018-08-01 17:10|www2|www_access|162.158.255.185 -...| |2018-08-01 17:10|www2|www_access|108.162.238.234 -...| |2018-08-01 17:10|www2|www_access|172.68.47.211 - -...| |2018-08-01 17:11|www2|www_access|141.101.96.28 - -...| |2018-08-01 17:11|www2|www_access|141.101.96.28 - -...| |2018-08-01 17:11|www2|www_access|162.158.50.89 - -...| |2018-08-01 17:12|www2|www_access|192.168.1.7 - - [...| |2018-08-01 17:12|www2|www_access|172.68.47.151 - -...| |2018-08-01 17:12|www2|www_access|192.168.1.7 - - [...| |2018-08-01 17:12|www2|www_access|141.101.76.83 - -...| |2018-08-01 17:14|www2|www_access|172.68.218.41 - -...| |2018-08-01 17:14|www2|www_access|172.68.218.47 - -...| |2018-08-01 17:14|www2|www_access|172.69.70.72 - - ...| |2018-08-01 17:15|www2|www_access|172.68.63.24 - - ...| |2018-08-01 17:18|www2|www_access|192.168.1.7 - - [...| |2018-08-01 17:18|www2|www_access|141.101.99.138 - ...| |2018-08-01 17:19|www2|www_access|192.168.1.7 - - [...| |2018-08-01 17:19|www2|www_access|162.158.89.74 - -...| |2018-08-01 17:19|www2|www_access|172.68.54.35 - - ...| +----------------+----+----------+--------------------+ only showing top 20 rows 我们再次看到DataFrame中有四列与我们的模式匹配,DataFrame此处可以被视为数据库表或Excel电子表格。 3、Python SciKit-Learn 任何关于大数据的讨论都会引发关于机器学习的讨论,幸运的是,Python开发人员有很多选择来使用机器学习算法。 在没有详细介绍机器学习的情况下,我们需要获得一些执行机器学习的数据,我在本文中提供的示例数据不能正常工作,因为它不是数字类型的数据。我们需要操纵数据并将其呈现为数字格式,这超出了本文的范围,例如,我们可以按时间映射日志以获得具有两列的DataFrame:一分钟内的日志数和当前时间: +------------------+---+ | 2018-08-01 17:10 | 4 | +------------------+---+ | 2018-08-01 17:11 | 1 | +------------------+---+ 通过这种形式的数据,我们可以执行机器学习算法来预测未来可能获得的访客数量,SciKit-Learn附带了一些样本数据集,我们可以加载一些示例数据,来看一下具体如何运作。 In [1]: from sklearn import datasets In [2]: iris = datasets.load_iris() In [3]: digits = datasets.load_digits() In [4]: print(digits.data) [[ 0. 0. 5. ... 0. 0. 0.] [ 0. 0. 0. ... 10. 0. 0.] [ 0. 0. 0. ... 16. 9. 0.] ... [ 0. 0. 1. ... 6. 0. 0.] [ 0. 0. 2. ... 12. 0. 0.] [ 0. 0. 10. ... 12. 1. 0.]] 这将加载两个用于机器学习分类的算法,用于对数据进行分类。 结论 在大数据领域,Python、R以及Scala是主要的参与者,开源社区中有不少针对这三者的工具,国内互联网企业一向很喜欢基于开源工具自研,选择之前不妨做好功课,抽取使用人数较多且应用场景最接近实际需求的方案。