Numpy:Python,快叫我一声“爸爸”

发表于:2019-12-31 09:46

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

 作者:佚名    来源:读芯术

#
Python
分享:
  Numpy会成为下一个Python吗?
  Python是目前世界上最流行的统计计算语言之一。
  有趣之处在于,开发者从未想过将Python设计为一种统计语言。尽管Python确实具有一些函数特性,例如:无类计算,但它很大程度上还是一种面向对象的语言。与R这样的传统统计语言相比,Python更类似于如C ++这样的语言。因此,其实Python的代码库最初并不是为数据科学而创建的。
  R,Julia甚至Go之类的语言通常实现了用来进行线性代数运算的基本函数和操作数,而Python基础库没有这类函数。如果你使用Python进行线性代数运算已有一段时间,很可能在代码中声明这个经典语句:
 import numpy as np
  Numpy将Python的统计能力从20%提升到了100%。对数据科学家来说,避免使用Numpy很难。
 
  Numpy不仅具有Python语言缺少的线性代数功能,还具备许多令工作事半功倍的数学和数据管理特性。
  不仅如此,Pandas(Python的数据表管理库)是基于Numpy构建的。这使得二者的集成几乎是无缝的。Numpy和Pandas稳定、强大的代码库使数据科学任务变得流畅。这就是Python在数据科学领域领先于许多其他语言的全部原因。很简单,也十分易于理解。
  鉴于大多数高级语言都实现了各自的线性代数函数,Python更底层一些且需要的操作数或函数不止一个似乎有些奇怪。
  比较
  若没有Numpy,Python该如何在数组之间进行数学运算呢?
  它又如何与当前其他统计语言一争高下呢?实际上,Python的数组迭代能力很棒。zip()函数可以同时遍历两个列表。
   array =[]
  for f, bin zip(array1, array2):
  res = f * b
  array.append(res)
  尽管这看起来不难,但把Python与另一种语言(例如R或Julia)进行比较,就能发现使用一种获得两个数组的乘积的更简单的方法。
  例如,在R中:
 array<- array1 * array2
  R使这个操作变得容易;可以将星号操作数用于数组乘法以及整数和双精度数的乘法。
  在Julia中:
 array =array1 .* array2
  在Julia中,简单地在星号前面放置一个点,使其成为“.*”,就能将两个数组相乘。
  随着Python越发成为一种统计语言,观望Numpy是否能够进入基础语言行列会是一件趣事。
  显然,随着Python在统计中的应用会影响其增加更多函数特性的可能性。尽管Numpy定会继续提供许多工具并提升处理困难任务的能力,我还是无法想象一个不需要指针的基本语言,以及Numpy会进行一些弃用。可能很多机器都安装了像Numpy一样的工具,但需要一个包来在一行中进行数组乘法,这的确显得有些零散和奇怪。
  尽管Numpy的某些功能是否已纳入Python基础库影响不大,Numpy也已被视为Python的扩展,我还是觉得这个想法很有趣。
  实际上,这可能性很大,且当下就有望实现。虽然这个想法合理,但也有充足的理由不予采纳。特别考虑到,随着Python在数据科学中的使用越来越广泛,其可能会为适应统计任务而新增一些特性。
  以后究竟会如何发展,我们还且拭目以待……

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号