您好,登錄后才能下訂單哦!
如何分析python numpy庫,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
numpy
是一個開源的python
科學(xué)計算擴展庫,主要用來處理任意維度數(shù)組和矩陣。
相同的任務(wù),使用numpy
比直接用python
的基本數(shù)據(jù)結(jié)構(gòu)更加簡單高效。
它的功能:
包含一個強大的N維數(shù)組對象Ndarray
廣播功能函數(shù)
整合C/C++代碼的工具
線性代數(shù)、傅里葉變換、隨機數(shù)生成等功能
numpy
是scipy
,pandas
等數(shù)據(jù)處理或科學(xué)計算庫的基礎(chǔ)
雖說別名可以省略或者更改,但盡量使用上述約定的別名
n維數(shù)組,它是一個相同數(shù)據(jù)類型的集合,以0為下標開始進行集合中元素的索引。
我們知道,python
有列表和數(shù)組此類的數(shù)據(jù)結(jié)構(gòu)。
列表:數(shù)據(jù)類型可以不同(如[3, 2.4 ,‘a(chǎn)' ,“abc”]),數(shù)據(jù)是有序的
數(shù)組:數(shù)據(jù)類型相同(如[1,2,3,4])
集合: (如{2,4,3,5,7})數(shù)據(jù)是無序的
觀察下列兩組操作,其功能都是一樣的。
import numpy as np def pysum(): a = [1, 2, 3, 4] b = [5, 6, 7, 8] c = [] for i in range(len(a)): c.append(a[i]**2+b[i]**3) return c def numpysum(): a = np.array([1, 2, 3, 4]) b = np.array([5, 6, 7, 8]) c = a**2+b**3 return c print("使用列表運算的結(jié)果是:", pysum()) print("使用Numpy運算的結(jié)果是:", numpysum())
運行結(jié)果:
使用列表運算的結(jié)果是: [126, 220, 352, 528]
使用Numpy運算的結(jié)果是: [126 220 352 528]
但是很明顯:
numpy
的數(shù)組對象可以去掉元素建運算所需要的循環(huán),使一維向量更像單個數(shù)據(jù)
numpy
通過設(shè)立專門的數(shù)組對象,經(jīng)過優(yōu)化,運算速度也相應(yīng)提升
通常情況下,在科學(xué)運算中,一個維度所有數(shù)據(jù)的類型往往相同,這時,使用數(shù)組對象采用相同的數(shù)據(jù)類型,有助于節(jié)省運算時間和存儲空間
實際的數(shù)據(jù)
描述這些數(shù)據(jù)的元數(shù)據(jù)(數(shù)據(jù)維度、數(shù)據(jù)類型等)
當np.array()
不指定dtype
時,numpy
將根據(jù)數(shù)據(jù)情況關(guān)聯(lián)一個dtype
類型
ndarray
支持多種數(shù)據(jù)類型的原因
python
基本語法只支持整數(shù)、浮點數(shù)和復(fù)數(shù)3種類型
科學(xué)計算涉及數(shù)據(jù)較多,對存儲和性能都有較高要求
對元素類型精細定義,有助于numpy
合理使用存儲空間并優(yōu)化性能
對元素類型精細定義,有助于程序員對程序規(guī)模有合理評估
import numpy as np x = np.array([[1, 0], [2, 0], [3, 1]], np.int32) print(x) print(x.dtype)
程序輸出:
[[1 0]
[2 0]
[3 1]]
int32
索引:獲取數(shù)組中特定位置元素的過程
切片:獲取數(shù)組元素子集的過程
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。