Python是一门神奇的语言。经过时间和实践,得到了开发者和数据科学家的一致好评。它是目前世界上最发达的编程语言之一。简单易用、完备且庞大的第三方库生态,使Python成为编程初学者和高级工程师的首选。在这篇文章中,我们将分享市面上不同的python数据科学库(例如numpy、padnas、scikit-learn、matplotlib等),虽然这些库很棒,但还有其他一些鲜为人知但同样优秀的库我们需要探索和学习。1、Wget从互联网上获取数据被认为是数据科学家必备的基本技能,而Wget是一套非交互式的基于命令行的文件下载库。ta支持HTTP、HTTPS和FTP协议,也支持使用IP代理。因为ta是非交互式的,即使用户没有登录,ta也可以在后台运行。所以下次如果你想从网络上下载一个页面,Wget可以帮助你。安装pipisntallwget用例importwgeturl='http://www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'filename=wget.download(url)运行并输出100%[............................]3841532/3841532filename'razorback.mp3'2.用于处理纪元(时间)数据的钟摆是一个对于大多数python用户来说,这是一件令人抓狂的事情,但Pendulum是为你准备的。它是python内置时间类的一个很好的替代品。更多信息参见官方文档https://pendulum.eustace.io/docs/installpipinstallpendulum用例importpendulumdt_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())运行并输出33.imbalanced-learn常用机器学习分类算法默认输入的数据为平衡数据,即假设训练集数据有A和B两类,A和B的数据量大致相同。如果A和B的数据量相差巨大,训练效果就不会很理想。事实上,大部分收集和组织的数据都是不平衡的数据,这对机器学习分类算法来说确实是一个大问题。幸运的是,有一个不平衡学习库可以很好地解决这个问题。该库与scikit-learn兼容,是scikit-learn-contrib项目的一部分。再次遇到数据不平衡的时候,记得试一试!安装pipinstall-Uimbalanced-learn#或condainstall-cconda-forgeimbalanced-learn这个库有高质量的文档http://imbalanced-learn.org/en/stable,目前库支持scikit-learn,keras,tensorflow库4.FlashText在繁重的NLP任务中经常会遇到多个指代同义词的替换,或者从句子中提取关键词。通常,我们一般的做法是使用正则表达式来完成这些脏活累活,但是如果要操作的字数达到几万个,使用正则表达式就会变得很麻烦。FlashText库基于FlashText算法。这个库最大的特点是程序的运行时间不受操作字数的影响,即运行时间与操作字数无关。因此特别适合在python文本分析中的应用。4.1安装pipinstallflashtext4.2用例4.2.1提取关键词我们都知道BigApple指的是NewYork。因此,在提取城市词NewYork时,我们必须考虑具有相同含义的不同词。fromflashtextimportKeywordProcessor#设置关键字处理器keyword_processor=KeywordProcessor()#设置关键字及其同义词keyword_processor.add_keyword('BigApple','NewYork')#遇到BigApple会识别为NewYorkkeyword_processor.add_keyword('BayArea')keywords_found=keyword_processor。extract_keywords("IloveBigAppleandBayArea.")keywords_foundRunandoutput['NewYork','BayArea']4.2.2替换关键字我们也经常需要对原文进行处理,比如将NewDelhi(新德里)替换为NCR地区(国家首都地区))keyword_processor.add_keyword('NewDelhi','NCRregion')new_sentence=keyword_processor.replace_keywords('IloveBigAppleandnewdelhi.')new_sentence运行并输出'IloveNewYorkandNCRregion'。更多信息请查看FlastText官方文档https://flashtext.readthedocs。io/en/最新/#5。Fuzzywuzzy库的名字有点奇怪,但是它有强大的字符串匹配功能。可以轻松实现比较比率和令牌比率等操作。它还可以轻松匹配保存在不同数据库中的记录。installpipinstallfuzzywuzzyusecasefromfuzzywuzzyimportfuzzyfromfuzzywuzzyimportprocess#SimpleRatioprint(fuzz.ratio("thisisatest","thisisatest!"))#PartialRatioprint(fuzz.partial_ratio("thisisatest","thisisatest!"))运行和输出见wuzy更多有趣的例子库github帐户https://github.com/seatgeek/fuzzywuzzy6.PyFlux/PyFTS。时间序列分析在机器学习领域经常遇到。PyFlux是专门为解决时间序列问题而开发的python库。这个库提供了很多现代的时间序列算法,不局限于ARIMA、GARCH和VAR这三种模型。总之,PyFlux为我们提供了分析时序数据的可能,你值得拥有。安装pipinstallpyfluxPyFlux用例查看库的文档https://pyflux.readthedocs.io/en/latest/index.html类似时间序列库和PyFTS,教程链接https://towardsdatascience.com/a-short-tutorial-on-fuzzy-time-series-dcc6d4eb1b15文档链接https://pyfts.github.io/pyFTS/.7。Ipyvolume数据科学的一个重要部分就是分析结果的展示和传达,而良好的视觉传达是非常重要的优势。IPyvolume是一个3D可视化库,只需最少的初始设置即可在jupyternotebook中使用。打个恰当的比方:matplotlib的imshow是一个二维数组,而IPyvolume的volshow是一个三维数组。安装pipinstallipyvolume#或condainstall-cconda-forgeipyvolume用例8.DashDash是用于开发Web应用程序的高生产力工具库。这个库基于Flask、Plotly.js和React.js。你不需要懂javascript,只用python就可以让我们制作漂亮的UI元素,比如列表、滑块和图表。这些应用程序可以在浏览器中呈现。具体文档请参考https://dash.plot.ly/installpipinstalldash==0.29.0pipinstalldash-html-components==0.13.2#Dash库HTML组件pipinstalldash-core-components==0.36.0#Dashlibrarycorecomponentpipinstalldash-table==3.1.3#Interactivedatabaseform(new)usecase下面是一个下拉菜单,可以选择股票代码的pandasDataframe数据类型作为输入,渲染为动态交互一个折线图9.GymGym是一个用于开发强化学习算法的工具包。它与TensorFlow或Theano等数值计算库兼容。我们可以相应地设计强化学习算法,并且这些环境(测试问题)具有允许我们编写通用算法的公共接口。安装pipinstallgym用例比如研究探月车登陆月球,科学家们需要考虑如何准确登陆到某个位置,保证安全登陆。这就需要利用健身房做强化学习,学习规则
