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

开发 后端
Numpy会成为下一个Python吗?Python是目前世界上最流行的统计计算语言之一。有趣之处在于,开发者从未想过将Python设计为一种统计语言。

Numpy会成为下一个Python吗?

Python是目前世界上最流行的统计计算语言之一。

有趣之处在于,开发者从未想过将Python设计为一种统计语言。尽管Python确实具有一些函数特性,例如:无类计算,但它很大程度上还是一种面向对象的语言。与R这样的传统统计语言相比,Python更类似于如C ++这样的语言。因此,其实Python的代码库最初并不是为数据科学而创建的。

R,Julia甚至Go之类的语言通常实现了用来进行线性代数运算的基本函数和操作数,而Python基础库没有这类函数。如果你使用Python进行线性代数运算已有一段时间,很可能在代码中声明这个经典语句:

  1. import numpy as np 

Numpy将Python的统计能力从20%提升到了100%。对数据科学家来说,避免使用Numpy很难。 

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

Numpy不仅具有Python语言缺少的线性代数功能,还具备许多令工作事半功倍的数学和数据管理特性。

不仅如此,Pandas(Python的数据表管理库)是基于Numpy构建的。这使得二者的集成几乎是无缝的。Numpy和Pandas稳定、强大的代码库使数据科学任务变得流畅。这就是Python在数据科学领域领先于许多其他语言的全部原因。很简单,也十分易于理解。

鉴于大多数高级语言都实现了各自的线性代数函数,Python更底层一些且需要的操作数或函数不止一个似乎有些奇怪。

比较

若没有Numpy,Python该如何在数组之间进行数学运算呢?

它又如何与当前其他统计语言一争高下呢?实际上,Python的数组迭代能力很棒。zip()函数可以同时遍历两个列表。 

  1. array =[]  
  2. for f, bin zip(array1, array2):  
  3. res = f * b  
  4. array.append(res) 

尽管这看起来不难,但把Python与另一种语言(例如R或Julia)进行比较,就能发现使用一种获得两个数组的乘积的更简单的方法。

例如,在R中:

  1. array<- array1 * array2 

R使这个操作变得容易;可以将星号操作数用于数组乘法以及整数和双精度数的乘法。

在Julia中:

  1. array =array1 .* array2 

在Julia中,简单地在星号前面放置一个点,使其成为“.*”,就能将两个数组相乘。

随着Python越发成为一种统计语言,观望Numpy是否能够进入基础语言行列会是一件趣事。

显然,随着Python在统计中的应用会影响其增加更多函数特性的可能性。尽管Numpy定会继续提供许多工具并提升处理困难任务的能力,我还是无法想象一个不需要指针的基本语言,以及Numpy会进行一些弃用。可能很多机器都安装了像Numpy一样的工具,但需要一个包来在一行中进行数组乘法,这的确显得有些零散和奇怪。

尽管Numpy的某些功能是否已纳入Python基础库影响不大,Numpy也已被视为Python的扩展,我还是觉得这个想法很有趣。

实际上,这可能性很大,且当下就有望实现。虽然这个想法合理,但也有充足的理由不予采纳。特别考虑到,随着Python在数据科学中的使用越来越广泛,其可能会为适应统计任务而新增一些特性。

以后究竟会如何发展,我们还且拭目以待……

 

责任编辑:未丽燕 来源: 今日头条
相关推荐

2019-09-11 15:35:18

戴尔

2012-03-23 15:36:39

2023-09-01 06:56:15

IntelSSD固态硬盘

2017-05-23 10:17:40

互联网

2016-06-23 18:03:55

华为开发者大赛

2013-10-17 09:58:48

2012-02-06 20:57:31

2022-09-12 16:03:48

系统验证AI

2011-05-10 13:37:53

程序员

2021-10-13 10:22:10

Python多继承开发

2010-06-07 15:07:34

云计算

2020-11-05 11:30:46

PythonNumPy数组

2021-04-09 08:13:14

API网关互联网

2022-02-18 12:24:39

PythonNumpy Arra大数据

2017-06-21 17:11:08

互联网

2021-03-05 07:47:07

工作流引擎节点

2017-03-09 13:29:04

ReactNative JSPatch
点赞
收藏

51CTO技术栈公众号