干貨知識分享,python-numpy-01-numpy介紹

1.概述

NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數(shù)組與矩陣運算,此外也針對數(shù)組運算提供大量的數(shù)學(xué)函數(shù)庫。

NumPy 的前身 Numeric 最早是由 Jim Hugunin 與其它協(xié)作者共同開發(fā),2005 年,Travis Oliphant 在 Numeric 中結(jié)合了另一個同性質(zhì)的程序庫 Numarray 的特色,并加入了其它擴展而開發(fā)了 NumPy。NumPy 為開放源代碼并且由許多協(xié)作者共同維護開發(fā)。

2.安裝

最簡單的安裝方法,就是通過Python自帶的pip工具進行安裝,操作如下:

pipinstall numpy# 針對指定python3的情況pip3install numpy

3.測試Numpy安裝情況

importnumpyasnp# 通過range方式生成ndarray數(shù)據(jù)a = np.arange(10)print(a)print(type(a))

運算結(jié)果:

[0123456789]<class'numpy.ndarray'>

說明: 通過 np.arange() 方式生成的數(shù)據(jù) [0 1 2 3 4 5 6 7 8 9] ,從外觀上面看和python的內(nèi)置數(shù)據(jù)類型列表(list)有些類似,但是在顯示過程中,數(shù)據(jù)中間沒有分割符號,另外數(shù)據(jù)類型是不一樣的,是numpy生成的數(shù)據(jù)類型:ndarray。

4.測試Numpy對于ndarray的支持情況

在概述里面說到,Numpy支持ndarray這種數(shù)據(jù)類型,同時為ndarray這種數(shù)據(jù)格式提供了大量科學(xué)計算的輔助函數(shù)。下面還是通過一個例子來說明:

"""

三種不同的方式對列表元素進行開平方

"""importnumpyasnpimportmath# 第一種:遍歷生成lt = [1,2,6]rs1 = []forvalinlt:? ? rs1.append(math.sqrt(val))print(rs1)print('--'*20)# 第二種: 列表推導(dǎo)式rs2 = [math.sqrt(x)forxinlt]print(rs2)print('--'*20)# 第三種: 使用numpy實現(xiàn)rs3 = np.sqrt(np.array(lt))print(rs3)

運行結(jié)果:

[1.0,1.4142135623730951,2.449489742783178]----------------------------------------[1.0,1.4142135623730951,2.449489742783178]----------------------------------------[1.1.414213562.44948974]

說明: 第一種和第二種本質(zhì)上是一樣的,只是寫法上面的差異。第三種方式,首先通過 np.array 函數(shù)將常規(guī)的列表(list)轉(zhuǎn)變成ndarray格式,然后通過numpy內(nèi)置函數(shù) np.sqrt 直接對ndarray轉(zhuǎn)換,而不是和前面兩個元素需要手動實現(xiàn)單個元素開平方。另外一點需要注意的內(nèi)容是:最后結(jié)果在數(shù)值精度上面吧是一些差異的,numpy部分計算計算和math里面存在差異。

注意:

ndarray是numpy自定義數(shù)據(jù)類型集合,在ndarray里面又可以分為具體不同的數(shù)據(jù)類型,后面的文章會具體說明。

有什么問題歡迎大家評論區(qū)留言討論,支持小編的可以關(guān)注一下,之后還會有更多干貨知識分享給大家,記得關(guān)注哦~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容