創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!
為江北等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務,及江北網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站設(shè)計、做網(wǎng)站、江北網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!這篇文章將為大家詳細講解有關(guān)python中numpy指的是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
NumPy是Python中科學計算的基礎(chǔ)包。它是一個Python庫,提供多維數(shù)組對象,各種派生對象(如掩碼數(shù)組和矩陣),以及用于數(shù)組快速操作的各種例程,包括數(shù)學,邏輯,形狀操作,排序,選擇,I / O離散傅立葉變換,基本線性代數(shù),基本統(tǒng)計運算,隨機模擬等等。
NumPy包的核心是ndarray對象。這封裝了同構(gòu)數(shù)據(jù)類型的n維數(shù)組,許多操作在編譯代碼中執(zhí)行以提高性能。NumPy數(shù)組和標準Python序列之間有幾個重要的區(qū)別:
·NumPy數(shù)組在創(chuàng)建時具有固定大小,與Python列表(可以動態(tài)增長)不同。更改ndarray的大小將創(chuàng)建一個新數(shù)組并刪除原始數(shù)組。
·NumPy數(shù)組中的元素都需要具有相同的數(shù)據(jù)類型,因此在內(nèi)存中的大小相同。例外:可以有(Python,包括NumPy)對象的數(shù)組,從而允許不同大小的元素的數(shù)組。
·NumPy數(shù)組有助于對大量數(shù)據(jù)進行高級數(shù)學和其他類型的操作。通常,與使用Python的內(nèi)置序列相比,這些操作的執(zhí)行效率更高,代碼更少。
·越來越多的基于Python的科學和數(shù)學軟件包正在使用NumPy數(shù)組; 雖然這些通常支持Python序列輸入,但它們在處理之前將這些輸入轉(zhuǎn)換為NumPy數(shù)組,并且它們通常輸出NumPy數(shù)組。換句話說,為了有效地使用當今大量(甚至大多數(shù))基于Python的科學/數(shù)學軟件,只知道如何使用Python的內(nèi)置序列類型是不夠的 - 還需要知道如何使用NumPy數(shù)組。
關(guān)于序列大小和速度的要點在科學計算中尤為重要。作為一個簡單的例子,考慮將1-D序列中的每個元素與相同長度的另一個序列中的相應元素相乘的情況。如果數(shù)據(jù)被存儲在兩個Python列表,a并且b,我們可以遍歷每個元素:
c = [] for i in range(len(a)): c.append(a[i]*b[i])
這產(chǎn)生了正確的答案,但如果a且b每個包含數(shù)百萬個數(shù)字,我們將為Python中循環(huán)的低效率付出代價。我們可以通過寫入在C中更快地完成相同的任務(為了清楚起見,我們忽略了變量聲明和初始化,內(nèi)存分配等)
for (i = 0;i < rows;i++):{ c [ i ] = a [ i ] * b [ i ]; }
這節(jié)省了解釋Python代碼和操作Python對象所涉及的所有開銷,但代價是從Python編碼中獲得的好處。此外,所需的編碼工作隨著我們數(shù)據(jù)的維度而增加。例如,在二維數(shù)組的情況下,C代碼(如前所述)擴展為
for (i = 0; i < rows; i++): { for (j = 0; j < columns; j++): { c[i][j] = a[i][j]*b[i][j]; } }
NumPy為我們提供了兩全其美:當涉及到ndarray時,逐個元素的操作是“默認模式” ,但逐個元素的操作由預編譯的C代碼快速執(zhí)行。在NumPy
c = a * b
以近C速度執(zhí)行前面的示例所做的事情,但是我們期望基于Python的代碼具有簡單性。的確,NumPy成語更簡單!最后一個例子說明了NumPy的兩個特征,它們是它的大部分功能的基礎(chǔ):矢量化和廣播。
Vectorization描述了代碼中沒有任何顯式循環(huán),索引等 - 這些事情當然只是在優(yōu)化的,預編譯的C代碼中“幕后”。矢量化代碼有許多優(yōu)點,其中包括:
·矢量化代碼更簡潔,更易于閱讀
·更少的代碼行通常意味著更少的錯誤
·代碼更接近于標準的數(shù)學符號(通常,更容易,正確編碼數(shù)學結(jié)構(gòu))
·矢量化導致更多“Pythonic”代碼。如果沒有矢量化,我們的代碼就會被低效且難以閱讀的for循環(huán)所困擾。
廣播是用于描述操作的隱式逐元素行為的術(shù)語;一般來說,在NumPy中,所有操作,不僅僅是算術(shù)運算,而是邏輯,位,功能等,都以這種隱式的逐元素方式表現(xiàn),即它們進行廣播。此外,在上面的例子中,a并且b可以是相同形狀的多維陣列,或者標量和陣列,或者甚至是具有不同形狀的兩個陣列,條件是較小的陣列可以“擴展”到更大的形狀。結(jié)果廣播明確無誤的方式。有關(guān)廣播的詳細“規(guī)則”,請參閱numpy.doc.broadcasting。
NumPy完全支持面向?qū)ο蟮姆椒ǎ俅问褂胣darray開始。例如,ndarray是一個類,擁有許多方法和屬性。它的許多方法都在最外層的NumPy命名空間中鏡像函數(shù),使程序員可以完全自由地編寫她喜歡的范例和/或最適合手頭任務的范例。
關(guān)于python中numpy指的是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
標題名稱:python中numpy指的是什么-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://aaarwkj.com/article28/pjojp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航、靜態(tài)網(wǎng)站、搜索引擎優(yōu)化、云服務器、定制開發(fā)、服務器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容