Python numpy多維數(shù)組實現(xiàn)原理詳解
NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數(shù)組與矩陣運算,此外也針對數(shù)組運算提供大量的數(shù)學(xué)函數(shù)庫。今天就針對多維數(shù)組展開來寫博客numpy其一部分功能如下:
1.ndarray,是具有矢量算術(shù)運算且節(jié)省空間的多維數(shù)組。
2.可以用于對整組的數(shù)據(jù)快速進行運算的辨準數(shù)學(xué)函數(shù)。
3.能夠用于讀寫磁盤數(shù)據(jù)的工具以及用于操作系統(tǒng)內(nèi)存映射的工具。
NumPy它本身其實沒有提供很高級別的數(shù)據(jù)分析功能,NumPy之于數(shù)值計算特別重要的原因之一,就是因為它能夠高效的處理大數(shù)組的數(shù)據(jù)。這是因為:
1.NumPy是在一個連續(xù)的內(nèi)存塊中存儲數(shù)據(jù),獨立于其他的Python內(nèi)置對象。
2.NumPy可以在整個數(shù)組上執(zhí)行復(fù)雜的計算,而不需要Python的for循環(huán)。
NumPy的ndarray:一種多維數(shù)組對象
對數(shù)組進行數(shù)學(xué)運算
可以看到data的值實際是沒有改變的,輸出的結(jié)果只是臨時結(jié)果而已。
ndarray是一個通用的同構(gòu)數(shù)據(jù)多維容器,也就是說,其中的所有元素必須是相同類型的。
每個數(shù)組都有一個shape(形狀)和一個dtype(數(shù)據(jù)類型)。
查看ndarray的shape和dtype:
創(chuàng)建ndarray
創(chuàng)建數(shù)組最簡單的辦法就是使用array函數(shù)。
它接受一切序列型的對象(包括其它數(shù)組),然后產(chǎn)生一個新的含有傳入數(shù)據(jù)的NumPy數(shù)組。
除np.array之外,還有一些函數(shù)也可以新建數(shù)組。
比如,zero和ones分別可以創(chuàng)建指定長度或形狀的全0或全1數(shù)組。
empty可以用來創(chuàng)建一個沒有任何具體指的數(shù)組。
要用這些方法創(chuàng)建多維數(shù)組,只需要傳入一個表示形狀的元組即可:
arange是Python內(nèi)置函數(shù)range的數(shù)組版:
以下是一些數(shù)組創(chuàng)建函數(shù)。
由于NumPy關(guān)注的是數(shù)值計算
因此,如果沒有特別指定,數(shù)據(jù)類型基本都是float64(浮點數(shù))。
通過astype轉(zhuǎn)變一個數(shù)組的dtype
如果將浮點數(shù)轉(zhuǎn)換成整數(shù),則小數(shù)部分將會被截除。
如果某字符串數(shù)組表示的全是數(shù)字,也可以用astype將其轉(zhuǎn)換為數(shù)值形式。
調(diào)用astype總會創(chuàng)建一個新的數(shù)組(一個數(shù)據(jù)的備份),即使新的dtype與舊的dtype相同。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 匹配模式 - XSL教程 - 42. 解析原生JS getComputedStyle3. Idea 2019.3 本應(yīng)該搜索到的插件卻搜索不到的解決方法4. 每日六道java新手入門面試題,通往自由的道路5. ASP.NET泛型三之使用協(xié)變和逆變實現(xiàn)類型轉(zhuǎn)換6. ASP.NET MVC視圖頁使用jQuery傳遞異步數(shù)據(jù)的幾種方式詳解7. 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法8. JSP數(shù)據(jù)交互實現(xiàn)過程解析9. jsp+servlet簡單實現(xiàn)上傳文件功能(保存目錄改進)10. 每日六道java新手入門面試題,通往自由的道路--多線程
