数据科学中一些不常用但很有用的Python库
创始人
2025-03-19 08:02:10
0次

导读

提到数据科学的python包,大家想到的估计是numpy,pandas,scikit-learn之类的,这里给大家介绍一些不常用,但是非常有用的python包,就像是痒痒挠,虽然大部分时间用不上,但是真要用起来,还是挺爽的。

[[279538]]

Python是个了不起的语言。事实上,这是世界上发展最快的语言之一(感觉没有之一,就是最快的)。在数据科学领域和开发领域,一次又一次的为我们提供便利。整个Python的生态和库使之成为所有用户都适用(初学者和高级用户)。Python之所以这么成功,原因之一就在于它的库,让Python变得灵活快速。

这篇文章中,我们会看一些不太常用的数据科学的库,除了pandas,scikit-learn,matplotlib等。尽管说到数据科学,我们想到的就是pandas和scikit-learn,了解一下其他的python的库也没什么坏处。下面就是另外一些数据科学中可能会用到的Python库。

Wget

从网络获取数据是Python科学家非常重要的任务。Wget是一个免费的工具,可以从Web上非交互式的下载文件,支持HTTP, HTTPS, 和 FTP协议,同样支持HTTP代理。由于是非交互式的,所以可以后台运行,用户没有登录也可以。所以下次你需要从网上下载图片的时候,可以试试wget。

安装:

  1. $ pip install wget 

例子:

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

Pendulum

这个是干啥的呢,你在处理日期时间的时候搞得头大的时候,Pendulum就很适合你,这包是用来简化日期时间的操作的,具体使用可以看 这里 。

安装:

  1. $ pip install pendulum 

例子:

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

imbalanced-learn

大多数的分类问题中,当所有的类别中的样本的数量大致相同时,效果是最好的,也就是样本均衡。但是在实际情况中,往往都是非均衡的数据,这往往会影响训练的过程以及后面的预测。幸好,这个库可以帮我们解决这个问题。这个和scikit-learn兼容,是scikit-learn-contrib的一部分。下次可以试试。

安装:

  1. pip install -U imbalanced-learn 
  2. # or 
  3. conda install -c conda-forge imbalanced-learn 

例子:

请参考文档。

FlashText

在清洗NLP相关的数据的时候,往往需要替换一些关键词或者提取一些关键词。通常,可以用正则表达式来干这个活,不过正则条件的数量上千的时候,就会很头大。FlashText是基于FlashText算法的一个模块,提供了这种情况下的一个替代工具,FlashText最好的地方在于运行时间是和搜索的条件的数量不相关的。更多的信息可以看这里。

安装:

  1. $ pip install flashtext 

例子:

提取关键词

  1. from flashtext import KeywordProcessor 
  2. keyword_processor = KeywordProcessor() 
  3. # keyword_processor.add_keyword(, ) 
  4. keyword_processor.add_keyword('Big Apple', 'New York') 
  5. keyword_processor.add_keyword('Bay Area') 
  6. keywords_found = keyword_processor.extract_keywords('I love Big Apple and Bay Area.') 
  7. keywords_found 
  8. ['New York', 'Bay Area'] 

替换关键词

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

Fuzzywuzzy

名字听起来怪怪的,不过在字符匹配的时候,用起来还是爽爽的。可以轻松的实现字符比例,token比例等。还可以在不同的数据集中进行匹配。

安装:

  1. $ pip install fuzzywuzzy 

例子:

  1. from fuzzywuzzy import fuzz 
  2. from fuzzywuzzy import process 
  3. # Simple Ratio 
  4. fuzz.ratio("this is a test", "this is a test!") 
  5. 97 
  6. # Partial Ratio 
  7. fuzz.partial_ratio("this is a test", "this is a test!") 
  8.  100 

PyFlux

时间序列的处理是机器学习领域经常遇到的问题。PyFlux就是专门用来处理时间序列问题的开源Python库。这个库里有一系列的时间序列模型如ARIMA, GARCH 和VAR 等。简单来说,PyFlux提供了时间序列到概率的建模,值的一试。

安装

  1. pip install pyflux 

例子

参考这里 。

Ipyvolume

交流结果是数据科学的非常重要的方面。结果可视化是个非常重要的优势。IPyvolume是个3D可视化库,不过这还是在pre-1.0的阶段,可以这样类别一下, IPyvolume是对3维数据的可视化,matplotlib是对二维数据的可视化。具体可以看 这里。

安装

  1. Using pip 
  2. $ pip install ipyvolume 
  3. Conda/Anaconda 
  4. $ conda install -c conda-forge ipyvolume 

例子

  • 标记
数据科学中一些不常用但很有用的Python库
  • 渲染
数据科学中一些不常用但很有用的Python库

Dash

这是个创建web应用的用户生产的Python框架。基于Flask写的,可以用来构建数据可视化的app,这些app可以在网络浏览器上渲染。用户手册可见 这里.

安装

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

例子

数据科学中一些不常用但很有用的Python库

Gym

Gym来自OpenAI,用来做强化学习。兼容所有的数值计算库,如TensorFlow,Theano等。这个库提供了一个问题测试的环境,你可以用这个环境来实验你的强化学习算法。这些环境共享界面,使你可以写通用的算法。

安装

  1. pip install gym 

例子

数据科学中一些不常用但很有用的Python库

结论

这是我选的一些有用但是不常用的python库,如果你知道其他的话,可以继续添加,别忘了先试试。

 

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
只需三步,让你掌握阿尔法路由器... 请参照以下阿尔法路由器设置方法,通过浏览器进入及设置宽带路由器。经过这三个步骤的设置,基本上能够熟悉...
如何更省钱? 近期特价热门硒鼓... 如今激光打印设备已经成为商务或企业的绝对主力办公设备,但采购者往往忽视了激光打印设备所用的耗材,相对...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...