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

全文共1581字,預計學習時長

5分鐘

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

圖源:Unsplash

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,快叫我一聲“爸爸”

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

R使這個操作變得容易;可以將星號操作數用於數組乘法以及整數和雙精度數的乘法。


在Julia中:


array =array1 .* array2

在Julia中,簡單地在星號前面放置一個點,使其成為“.*”,就能將兩個數組相乘。


隨著Python越發成為一種統計語言,觀望Numpy是否能夠進入基礎語言行列會是一件趣事。


顯然,隨著Python在統計中的應用會影響其增加更多函數特性的可能性。儘管Numpy定會繼續提供許多工具並提升處理困難任務的能力,我還是無法想象一個不需要指針的基本語言,以及Numpy會進行一些棄用。可能很多機器都安裝了像Numpy一樣的工具,但需要一個包來在一行中進行數組乘法,這的確顯得有些零散和奇怪。


儘管Numpy的某些功能是否已納入Python基礎庫影響不大,Numpy也已被視為Python的擴展,我還是覺得這個想法很有趣。


實際上,這可能性很大,且當下就有望實現。雖然這個想法合理,但也有充足的理由不予採納。特別考慮到,隨著Python在數據科學中的使用越來越廣泛,其可能會為適應統計任務而新增一些特性。


以後究竟會如何發展,我們還且拭目以待……

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

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

我們一起分享AI學習與發展的乾貨


分享到:


相關文章: