Python numpy多維數(shù)組實現(xiàn)原理詳解
NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數(shù)組與矩陣運算,此外也針對數(shù)組運算提供大量的數(shù)學函數(shù)庫。今天就針對多維數(shù)組展開來寫博客numpy其一部分功能如下:
1.ndarray,是具有矢量算術運算且節(jié)省空間的多維數(shù)組。
2.可以用于對整組的數(shù)據(jù)快速進行運算的辨準數(shù)學函數(shù)。
3.能夠用于讀寫磁盤數(shù)據(jù)的工具以及用于操作系統(tǒng)內存映射的工具。
NumPy它本身其實沒有提供很高級別的數(shù)據(jù)分析功能,NumPy之于數(shù)值計算特別重要的原因之一,就是因為它能夠高效的處理大數(shù)組的數(shù)據(jù)。這是因為:
1.NumPy是在一個連續(xù)的內存塊中存儲數(shù)據(jù),獨立于其他的Python內置對象。
2.NumPy可以在整個數(shù)組上執(zhí)行復雜的計算,而不需要Python的for循環(huán)。
NumPy的ndarray:一種多維數(shù)組對象
對數(shù)組進行數(shù)學運算

可以看到data的值實際是沒有改變的,輸出的結果只是臨時結果而已。
ndarray是一個通用的同構數(shù)據(jù)多維容器,也就是說,其中的所有元素必須是相同類型的。
每個數(shù)組都有一個shape(形狀)和一個dtype(數(shù)據(jù)類型)。
查看ndarray的shape和dtype:

創(chuàng)建ndarray
創(chuàng)建數(shù)組最簡單的辦法就是使用array函數(shù)。
它接受一切序列型的對象(包括其它數(shù)組),然后產生一個新的含有傳入數(shù)據(jù)的NumPy數(shù)組。

除np.array之外,還有一些函數(shù)也可以新建數(shù)組。
比如,zero和ones分別可以創(chuàng)建指定長度或形狀的全0或全1數(shù)組。
empty可以用來創(chuàng)建一個沒有任何具體指的數(shù)組。
要用這些方法創(chuàng)建多維數(shù)組,只需要傳入一個表示形狀的元組即可:

arange是Python內置函數(shù)range的數(shù)組版:

以下是一些數(shù)組創(chuàng)建函數(shù)。
由于NumPy關注的是數(shù)值計算
因此,如果沒有特別指定,數(shù)據(jù)類型基本都是float64(浮點數(shù))。

通過astype轉變一個數(shù)組的dtype
如果將浮點數(shù)轉換成整數(shù),則小數(shù)部分將會被截除。
如果某字符串數(shù)組表示的全是數(shù)字,也可以用astype將其轉換為數(shù)值形式。
調用astype總會創(chuàng)建一個新的數(shù)組(一個數(shù)據(jù)的備份),即使新的dtype與舊的dtype相同。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關文章:
1. php模擬實現(xiàn)斗地主發(fā)牌2. Python random庫使用方法及異常處理方案3. 理解PHP5中static和const關鍵字4. spring acegi security 1.0.0 發(fā)布5. Vue封裝一個TodoList的案例與瀏覽器本地緩存的應用實現(xiàn)6. Vuex localStorage的具體使用7. jQuery 實現(xiàn)DOM元素拖拽交換位置的實例代碼8. .Net Core使用Coravel實現(xiàn)任務調度的完整步驟9. vue 使用localstorage實現(xiàn)面包屑的操作10. MyBatis中的JdbcType映射使用詳解

網(wǎng)公網(wǎng)安備