安排上!数据科学中必须了解的Python基础库

发表于:2019-11-26 10:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:读芯术

#
Python
分享:
  正在学习数据科学的你希望快刀斩乱麻解决其中的一些问题吗?那我们果断要把目光投向Python
  
  本文将介绍一些基础的数据科学库,学会之后你也可以6到飞起。
  核心库
  Python有三个核心数据科学库,在此基础上还创建了许多其他的库。这三个核心数据科学库分别为:
  Numpy
  Scipy
  Matplotlib
  简单起见,可以把Numpy视为首选数组。Numpy数组在许多方面都与标准Python列表不同,但有几点需要记住,那就是Numpy数组比标准Python列表运算速度更快、所占空间更少、功能更多。但同时也需注意,这些数组的大小和类型是固定的,可以在创建数组时进行定义。同时,它不像列表那样可以无限添加新值。
  Scipy在Numpy的基础上,提供了许多优化、统计和线性代数处理等功能。虽然Numpy也有类似的功能,但个人更喜欢Scipy的功能。想要计算相关系数或创建一些正态分布数据吗?Scipy简直就是为你量身定制的。
  和其他数据科学库相比,Matplotlib可能略逊一筹,但它是Python中绘图的核心库。功能强大,可以在需要时进行有效控制。
  第二代库
  核心库非常棒,也很常用。不过,还有三个基于核心库的第二代库,它们提供的功能更多,使用的代码更少。
  如果你一直在学习数据科学却没听说过Scikit-learn,那我也无话可说。Scikit-learn是Python中的机器学习库。它拥有强大的社区支持、归档功能和一个统一且容易使用的API。该库专注于“核心”机器学习,包括结构化数据的回归、分类和聚类。但它并不能用于深度学习或贝叶斯机器学习等方面。
  Pandas的创建是为了简化Python中的数据分析。Pandas让加载结构化数据、计算统计数据、切割数据变得非常容易。在数据挖掘和分析阶段,它是一个不可或缺的工具。但个人不建议在数据生成阶段使用Pandas,因为它通常无法很好地扩展到大型数据集。不过可以将Pandas代码转换为原始的Numpy数组,这可以显著提高数据生产的速度。
  尽管Matplotlib不是可视化最好看的,但是Seaborn 可以很容易创建出漂亮的可视化数据。Seaborn是基于Matplotlib创建的,因此仍然可以使用Matplotlib功能增加或编辑Seaborn图表。它还使复杂图表类型的创建变得更加容易。看看下面的图片,可以找到一些灵感:
  深度学习
  随着深度学习的迅速发展,不说一说该领域中较好的Python包是不明智的。
  本人是Pytorch的铁杆粉丝。如果想在学习数据科学库的同时开始深度学习,从而让很先进的深度学习算法变得相对容易,那么Pytorch是不二之选。Pytorch正逐渐成为研究和实现大量功能的标准深度学习库,使其在数据生成用例中愈加完善。这些实例也提供了许多很好的入门教程 。
  个人看来,Keras 是第一个真正让深度学习变得触手可及的数据科学库。你可以用10行非常容易阅读和理解的代码来创建并训练一个深度学习模型。但它的缺点是,高层次的抽象很难实现Keras当前不支持的新研究(尽管他们正在该领域上不断改进)。它同时还支持多个后端,即Tensorflow和CNTK。
  Tensorflow 是由谷歌创建的,为深度学习的生产提供了很强大的支持。个人看来,最初版本的Tensorflow相当笨拙,但是他们学到了很多东西,Tensorflow 2.0让深度学习的门槛变得越来越低。当Pytorch为深度学习提供更多的生产支持时,Tensorflow则大大提高了深度学习的可用性。
  统计
  我想以Python中的两大统计模型库结束全文。
  如果你用过R,你可能会困惑为什么Scikit-learn没有在计算回归系数时给出p值。如果是这样,你需要看一下statsmodels。个人看来,statsmodels对统计模型和测试提供了很好的支持,甚至还支持很多R语法。
  概率编程和建模非常有趣。如果你不熟悉这个领域,可以查看黑客的贝叶斯方法,也可以使用PyMC3。PyMC3让定义的概率模型变得非常直观,并给许多先进的模型提供许多支持。
  飞起来
  在我之前,无人相信Python中还有许多令人惊艳的数据科学库。而本文的目的就是关注最基础的数据科学库。有了Python和这些出色的数据科学库,你会对自己可以取得的成就惊叹不已。我希望本文能够成为你涉足数据科学的一个很好

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号