本文目錄一覽:
(Python)numpy 常用操作
不放回取樣:
從列表ori中不放回地取n個數
通過這種操作,我們可以獲得一個二維列表的子集:
(如果這個二維列表是圖的鄰接矩陣,那麼就是對圖進行隨機採樣,獲得一個圖的子圖)
首先要注意,”+” 操作對於list和numpy.array是完全不同的
python 中的list,”+”代表拼接:
在numpy.array中,”+”代表矩陣相加
keepdim指的是維度不變,常在sum中使用。如:
會發現,keepdim之後還是二維的
這裡要注意,pytorch和numpy里max()函數的返回值是不同的
pytorch:
也就是說,max(1)代表求第一維的最大值,對於二維數組來說,就是求縱向的最大值,然後,第一個返回值是最大值所形成數組,第二個返回值是最大值所在的索引。這一個技巧在機器學習的分類任務中很常用,比如我們的分類任務是把數據分成m類,那麼最終我們模型的輸出是m維的,對於n個樣本就是n*m,如果要判斷我們的模型最終的分類結果,就是找n個樣本里,每個樣本m維輸出的最大值索引,代表樣本是這個類的可能性最大。我們可以方便地用這種方式找到最大值地索引:
其中test_out是模型輸出,predict_y則是分類結果
另外一點要注意的是,numpy與pytorch不同,numpy的max()只有一個返回值:
也就是說,numpy.max()不會返回最大值所在的索引
Python基礎 numpy中的常見函數有哪些
有些Python小白對numpy中的常見函數不太了解,今天小編就整理出來分享給大家。
Numpy是Python的一個科學計算的庫,提供了矩陣運算的功能,其一般與Scipy、matplotlib一起使用。其實,list已經提供了類似於矩陣的表示形式,不過numpy為我們提供了更多的函數。
數組常用函數
1.where()按條件返回數組的索引值
2.take(a,index)從數組a中按照索引index取值
3.linspace(a,b,N)返回一個在(a,b)範圍內均勻分布的數組,元素個數為N個
4.a.fill()將數組的所有元素以指定的值填充
5.diff(a)返回數組a相鄰元素的差值構成的數組
6.sign(a)返回數組a的每個元素的正負符號
7.piecewise(a,[condlist],[funclist])數組a根據布爾型條件condlist返回對應元素結果
8.a.argmax(),a.argmin()返回a最大、最小元素的索引
改變數組維度
a.ravel(),a.flatten():將數組a展平成一維數組
a.shape=(m,n),a.reshape(m,n):將數組a轉換成m*n維數組
a.transpose,a.T轉置數組a
數組組合
1.hstack((a,b)),concatenate((a,b),axis=1)將數組a,b沿水平方向組合
2.vstack((a,b)),concatenate((a,b),axis=0)將數組a,b沿豎直方向組合
3.row_stack((a,b))將數組a,b按行方向組合
4.column_stack((a,b))將數組a,b按列方向組合
數組分割
1.split(a,n,axis=0),vsplit(a,n)將數組a沿垂直方向分割成n個數組
2.split(a,n,axis=1),hsplit(a,n)將數組a沿水平方向分割成n個數組
數組修剪和壓縮
1.a.clip(m,n)設置數組a的範圍為(m,n),數組中大於n的元素設定為n,小於m的元素設定為m
2.a.compress()返回根據給定條件篩選後的數組
數組屬性
1.a.dtype數組a的數據類型
2.a.shape數組a的維度
3.a.ndim數組a的維數
4.a.size數組a所含元素的總個數
5.a.itemsize數組a的元素在內存中所佔的字節數
6.a.nbytes整個數組a所佔的內存空間7.a.astype(int)轉換a數組的類型為int型
數組計算
1.average(a,weights=v)對數組a以權重v進行加權平均
2.mean(a),max(a),min(a),middle(a),var(a),std(a)數組a的均值、最大值、最小值、中位數、方差、標準差
3.a.prod()數組a的所有元素的乘積
4.a.cumprod()數組a的元素的累積乘積
5.cov(a,b),corrcoef(a,b)數組a和b的協方差、相關係數
6.a.diagonal()查看矩陣a對角線上的元素7.a.trace()計算矩陣a的跡,即對角線元素之和
以上就是numpy中的常見函數。更多Python學習推薦:PyThon學習網教學中心。
問一下Python里的numpy的正確讀法是什麼?
numpy 讀法是:英[‘nʌmpi],NumPy是Python中科學計算的基礎包。
它是一個Python庫,提供多維數組對象,各種派生對象(如掩碼數組和矩陣),以及用於數組快速操作的各種例程,包括數學邏輯,形狀操作,I / O離散傅立葉變換,隨機模擬等等。
NumPy包的核心是ndarray對象。這封裝了同構數據類型的n維數組,許多操作在編譯代碼中執行以提高性能。
NumPy數組和標準Python序列之間有幾個重要的區別:
1、NumPy數組在創建時具有固定大小,與Python列表(可以動態增長)不同。更改ndarray的大小將創建一個新數組並刪除原始數組。
2、NumPy數組中的元素都需要具有相同的數據類型,因此在內存中的大小相同。例外:可以有(Python,包括NumPy)對象的數組,從而允許不同大小的元素的數組。
3、NumPy數組有助於對大量數據進行高級數學和其他類型的操作。通常,與使用Python的內置序列相比,這些操作的執行效率更高,代碼更少。
4、越來越多的基於Python的科學和數學軟件包正在使用NumPy數組;雖然這些通常支持Python序列輸入,但它們在處理之前將這些輸入轉換為NumPy數組,並且它們通常輸出NumPy數組。
python numpy是什麼庫
NumPy是Python語言的一個擴充程序庫。支持高級大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。Numpy內部解除了CPython的GIL(全局解釋器鎖),運行效率極好,是大量機器學習框架的基礎庫!
相關推薦:《Python基礎教程》
NumPy的全名為Numeric Python,是一個開源的Python科學計算庫,它包括:
·一個強大的N維數組對象ndrray;
·比較成熟的(廣播)函數庫;
·用於整合C/C++和Fortran代碼的工具包;
·實用的線性代數、傅里葉變換和隨機數生成函數。
NumPy的優點:
·對於同樣的數值計算任務,使用NumPy要比直接編寫Python代碼便捷得多;
·NumPy中的數組的存儲效率和輸入輸出性能均遠遠優於Python中等價的基本數據結構,且其能夠提升的性能是與數組中的元素成比例的;
·NumPy的大部分代碼都是用C語言寫的,其底層算法在設計時就有着優異的性能,這使得NumPy比純Python代碼高效得多。
當然,NumPy也有其不足之處,由於NumPy使用內存映射文件以達到最優的數據讀寫性能,而內存的大小限制了其對TB級大文件的處理;此外,NumPy數組的通用性不及Python提供的list容器。因此,在科學計算之外的領域,NumPy的優勢也就不那麼明顯。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/248901.html