9 个鲜为人知的 Python 数据科学库

除了 pandas、scikit-learn 和 matplotlib,还要学习一些用 Python 进行数据科学的新技巧。

Python 是一种令人惊叹的语言。事实上,它是世界上增长最快的编程语言之一。它一次又一次地证明了它在各个行业的开发者和数据科学者中的作用。Python 及其库的整个生态系统使其成为全世界用户的恰当选择,无论是初学者还是高级用户。它成功和受欢迎的原因之一是它的一组强大的库,使它如此动态和快速。

在本文中,我们将看到 Python 库中的一些数据科学工具,而不是那些常用的工具,如 pandas、scikit-learn 和 matplotlib。虽然像 pandas、scikit-learn 这样的库是机器学习中最常想到的,但是了解这个领域的其他 Python 库也是非常有帮助的。

Wget

提取数据,尤其是从网络中提取数据,是数据科学家的重要任务之一。Wget 是一个免费的工具,用于从网络上非交互式下载文件。它支持 HTTP、HTTPS 和 FTP 协议,以及通过 HTTP 代理进行访问。因为它是非交互式的,所以即使用户没有登录,它也可以在后台工作。所以下次你想下载一个网站或者网页上的所有图片,wget 会提供帮助。

安装:

$ pip install wget

例子:

import wget
url = 'http://www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'filename = wget.download(url)
100% [................................................] 3841532 / 3841532 filename 'razorback.mp3'

钟摆

对于在 Python 中处理日期时间感到沮丧的人来说, Pendulum 库是很有帮助的。这是一个 Python 包,可以简化日期时间操作。它是 Python 原生类的一个替代品。有关详细信息,请参阅其文档。

安装:

$ pip install pendulum

例子:

import pendulumdt_toronto = pendulum.datetime(2012, 1, 1, tz='America/Toronto')
dt_vancouver = pendulum.datetime(2012, 1, 1, tz='America/Vancouver')print(dt_vancouver.diff(dt_toronto).in_hours())3

不平衡学习

当每个类别中的样本数几乎相同(即平衡)时,大多数分类算法会工作得最好。但是现实生活中的案例中充满了不平衡的数据集,这可能会影响到机器学习算法的学习和后续预测。幸运的是,imbalanced-learn 库就是为了解决这个问题而创建的。它与 scikit-learn 兼容,并且是 scikit-learn-contrib 项目的一部分。下次遇到不平衡的数据集时,可以尝试一下。

安装:

pip install -U imbalanced-learn
# or
conda install -c conda-forge imbalanced-learn

例子:

有关用法和示例,请参阅其文档 。

FlashText

在自然语言处理(NLP)任务中清理文本数据通常需要替换句子中的关键词或从句子中提取关键词。通常,这种操作可以用正则表达式来完成,但是如果要搜索的术语数达到数千个,它们可能会变得很麻烦。

Python 的 FlashText 模块,基于 FlashText 算法,为这种情况提供了一个合适的替代方案。FlashText 的最佳部分是运行时间与搜索项的数量无关。你可以在其 文档 中读到更多关于它的信息。

安装:

$ pip install flashtext

例子:

提取关键词:

from flashtext import KeywordProcessor
keyword_processor = KeywordProcessor()# keyword_processor.add_keyword(<unclean name>, <standardised name>)keyword_processor.add_keyword('Big Apple', 'New York')
keyword_processor.add_keyword('Bay Area')
keywords_found = keyword_processor.extract_keywords('I love Big Apple and Bay Area.')keywords_found
['New York', 'Bay Area']

替代关键词:

keyword_processor.add_keyword('New Delhi', 'NCR region')new_sentence = keyword_processor.replace_keywords('I love Big Apple and new delhi.')new_sentence
'I love New York and NCR region.'

有关更多示例,请参阅文档中的 用法 一节。

模糊处理

这个名字听起来很奇怪,但是 FuzzyWuzzy 在字符串匹配方面是一个非常有用的库。它可以很容易地实现字符串匹配率、令牌匹配率等操作。对于匹配保存在不同数据库中的记录也很方便。

安装:

$ pip install fuzzywuzzy

例子:

from fuzzywuzzy import fuzz
from fuzzywuzzy import process# 简单的匹配率
fuzz.ratio("this is a test", "this is a test!")
97# 部分的匹配率 
fuzz.partial_ratio("this is a test", "this is a test!")100

更多的例子可以在 FuzzyWuzy 的 GitHub 仓库得到。

PyFlux

时间序列分析是机器学习中最常遇到的问题之一。PyFlux 是 Python 中的开源库,专门为处理时间序列问题而构建的。该库拥有一系列优秀的现代时间序列模型,包括但不限于 ARIMA、GARCH 以及 VAR 模型。简而言之,PyFlux 为时间序列建模提供了一种概率方法。这值得一试。

安装:

pip install pyflux

例子:

有关用法和示例,请参阅其 文档。

IPyvolume

交流结果是数据科学的一个重要方面,可视化结果提供了显著优势。 IPyvolume 是一个 Python 库,用于在 Jupyter 笔记本中可视化 3D 体积和形状(例如 3D 散点图),配置和工作量极小。然而,它目前处于 1.0 之前的阶段。一个很好的类比是这样的: IPyVolumee volshow 是 3D 阵列,Matplotlib 的 imshow 是 2D 阵列。你可以在其 文档 中读到更多关于它的信息。

安装:

Using pip
$ pip install ipyvolumeConda/Anaconda
$ conda install -c conda-forge ipyvolume

例子:

动画:

 

 

体绘制:

 

 

Dash

Dash 是一个用于构建 Web 应用程序的高效 Python 框架。它构建于 Flask、Plotty.js 和 Response.js 之上,将下拉菜单、滑块和图形等流行 UI 元素与你的 Python 分析代码联系起来,而不需要JavaScript。Dash 非常适合构建可在 Web 浏览器中呈现的数据可视化应用程序。有关详细信息,请参阅其 用户指南 。

安装:

pip install dash==0.29.0  # The core dash backend
pip install dash-html-components==0.13.2  # HTML components
pip install dash-core-components==0.36.0  # Supercharged components
pip install dash-table==3.1.3  # Interactive DataTable component (new!)

例子:

下面的示例显示了一个具有下拉功能的高度交互的图表。当用户在下拉列表中选择一个值时,应用程序代码将数据从 Google Finance 动态导出到 Pandas 数据框架中。

 

 

Gym

从 OpenAI 而来的 Gym 是开发和比较强化学习算法的工具包。它与任何数值计算库兼容,如 TensorFlow 或 Theano。Gym 是一个测试问题的集合,也称为“环境”,你可以用它来制定你的强化学习算法。这些环境有一个共享的接口,允许您编写通用算法。

安装:

pip install gym

例子:

以下示例将在 CartPole-v0 环境中,运行 1000 次,在每一步渲染环境。

 

 

你可以在 Gym 网站上读到 其它的环境 。

结论

这些是我挑选的有用但鲜为人知的数据科学 Python 库。如果你知道另一个要添加到这个列表中,请在下面的评论中提及。

转载于:https://www.cnblogs.com/alan-blog-TsingHua/p/10612317.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/363310.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

列出和过滤NIO.2中的目录内容

在Java 7发行之前&#xff0c;列出目录内容的领域并没有发生太多的事情。但是&#xff0c;由于NIO.2引入了一种新的方式来做到这一点&#xff0c;因此涵盖这一领域可能是值得的。 NIO.2的一大优点是能够在一个方法调用中立即使用列表和过滤。 这为与文件系统相关的大多数列表/筛…

Windows Mobile 编程 (Win32) - 获取设备能力

《Windows 程序设计》第五章重点讲述图形基础。首先一个示例代码是获取设备描述表信息。代码与Windows Mobile 编程 (Win32) - 输出文本中的代码类似。 #include <windows.h>#define NUMLINES ((int)(sizeof devcaps / sizeof devcaps[0]))struct {int iIndex;TCHAR …

Netty : writeAndFlush的线程安全及并发问题

使用Netty编程时&#xff0c;我们经常会从用户线程&#xff0c;而不是Netty线程池发起write操作&#xff0c;因为我们不能在netty的事件回调中做大量耗时操作。那么问题来了 – 1&#xff0c; writeAndFlush是线程安全的吗&#xff1f; 2&#xff0c; 是否使用了锁&#xff0c;…

[翻译-ASP.NET MVC]Contact Manager开发之旅

本翻译系列为asp.net mvc官方实例教程。在这个系列中&#xff0c;Stephen Walther将演示如何通过ASP.NET MVC framework结合单元测试、TDD、Ajax、软件设计原则及设计模式创建一个完整的Contact Manager应用。本系列共七个章节&#xff0c;也是七次迭代过程。本人将陆续对其进行…

数据库 日期格式操作

sql server: 日期转字符串-日期select CONVERT(varchar(100), GETDATE(), 23) from RegionRealtimeData 日期转字符串-全select CONVERT(varchar(100), GETDATE(), 20) from RegionRealtimeData 字符串转日期-日期select CONVERT(date, 2016-02-11, 23) from RegionRealtimeDat…

jsp输出所有请求头的名称

Enumeration headernamesrequest.getHeaderNames();while(headernames.hasMoreElements()){String headernameheadernames.nextElement();out.println(headername "-->" request.getHeader(headername) "");}out.println("");更多专业前端知识…

Spring4:具有Java 8 Date-Time API的@DateTimeFormat

在Spring 3.0中作为Formatter SPI的一部分引入的DateTimeFormat批注可用于解析和打印Web应用程序中的本地化字段值。 在Spring 4.0中&#xff0c; DateTimeFormat批注可以直接与Java 8 Date-Time API&#xff08; java.time &#xff09;一起使用。 在Spring中&#xff0c;可以…

一、rollup

参考&#xff1a;reduxreach-routerrollup-starter-librollup-starter-approller-clicreate-react-library 一、安装 npm install --global rollup二、命令&#xff1a; rollup -c 默认指向rollup.config.jsimport babel from rollup-plugin-babel; import commonjs from ro…

从一本书看经济危机中创业者的机会

最近抽时间在看一本书《赢道&#xff1a;成功创业者的28条戒律》&#xff0c;赢道营销总裁邓超明、中国企业家联合会秘书长刘洋和资深IT经理人代腾飞三位创业者联手所写。就如同网上所介绍的&#xff0c;这本书分析了近30年来国内外100位风云人物创业成败之道&#xff0c;讲述了…

JSF中run项目时候Tomcat8启动不了的一种方法

把另一个博客内容迁移到这 我的问题是Tomcat是可以启动的 但是run那个jsp的时候七月 10, 2016 3:14:54 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property source to org.eclipse…

elasticsearch_dsl.exceptions.ValidationException: You cannot write to a wildcard index.

elasticsearch_dsl.exceptions.ValidationException: You cannot write to a wildcard index. 这里是因为版本不匹配的问题 查看es版本方法如下&#xff1a; 查看elasticsearch包与elasticsearch-dsl版本方法&#xff08;pip list&#xff09;如下&#xff1a; 因为我的es是5.1…

ListView执行notifyDatasetChanged无数据显示,getView未执行

自定义的一个ListView放到布局文件中&#xff0c;设置widthmatch_parent&#xff0c;heightwrap_content。 设置数据后执行notifyDatasetChanged。可以确定数据发生了变化&#xff0c;但是没有进入到getView中刷新数据。 经过尝试&#xff0c;设置height为match_parent之后数据…

在Java中对Singleton类进行双重检查锁定

Singleton类在Java开发人员中非常常见&#xff0c;但是它给初级开发人员带来了许多挑战。 他们面临的主要挑战之一是如何使Singleton保持为Singleton&#xff1f; 也就是说&#xff0c;无论出于何种原因&#xff0c;如何防止单个实例的多个实例。 对Singleton进行双重检查锁定是…

【转】解析.Net框架下的XML编程技术

【引自突破思维的禁忌的博客】一、前言 XML是微软.Net战略的一个重要组成部分&#xff0c;而且它可谓是XML Web服务的基石&#xff0c;所以掌握.Net框架下的XML技术自然显得非常重要了。本文将指导大家如何运用C#语言完成.Net框架下的XML文档的读写操作。首先&#xff0c;我会向…

line-height 属性

p.small {line-height:90%} p.big {line-height:200%} 该属性会影响行框的布局。在应用到一个块级元素时&#xff0c;它定义了该元素中基线之间的最小距离而不是最大距离。 line-height 与 font-size 的计算值之差&#xff08;在 CSS 中成为“行间距”&#xff09;分为两半&…

wstngfw中使用Viscosity连接OpenV-P-N服务器

wstngfw中使用Viscosity连接OpenV-P-N服务器 在本例中&#xff0c;将假设以下设置&#xff1a; 站点 A站点 B名称Beijing Office&#xff08;北京办公室&#xff09;名称Shenzheng Office&#xff08;深圳办公室&#xff09;WAN IP192.168.10.46WAN IP192.168.20.46LAN 子网192…

软件开发薪资调查

软件开发薪资调查 以下是根据朋友和自己面试过的几家公司的了解得到的结果&#xff0c;可能与实际数据有些出入&#xff0c;只做参考。 2&#xff5e;3年工作经验的&#xff1a;杭州 公司名 公司性质 待遇 灵川 欧美&#xff08;英国…

使用jXLS将Excel文件解析为JavaBeans

这篇文章展示了如何使用jXLS将Excel文件解析为JavaBeans列表。 这是我编写的通用实用程序方法&#xff1a; /** * Parses an excel file into a list of beans. * * param <T> the type of the bean * param xlsFile the excel data file to parse * param jxlsConfigF…

开张了!

今天开张了&#xff0c;试试看&#xff01; Code1using System; 2using System.Collections.Generic; 3using System.Text; 4 5namespace Model 6{ 7 public enum SiteType 8 { System,External,All}; 9 [Serializable]10 class SiteInfo11 {12 public i…

实时监听input输入框value的变化:

HTML5 标准事件 oninput 和 IE 专属事件 onpropertychange 事件实时监听输入框value的变化 oninput 事件在用户输入时触发。 该事件在 <input> 或 <textarea> 元素的值发生改变时触发。 提示&#xff1a; 该事件类似于 onchange 事件。不同之处在于 oninput 事件…