python中numpy講解(numpy csdn)

本文目錄一覽:

python基礎之numpy.reshape詳解

這個方法是在不改變數據內容的情況下,改變一個數組的格式,參數及返回值,官網介紹:

a:數組–需要處理的數據

newshape:新的格式–整數或整數數組,如(2,3)表示2行3列,新的形狀應該與原來的形狀兼容,即行數和列數相乘後等於a中元素的數量

order:

 首先做出翻譯: order  : 可選範圍為{『C』, 『F』, 『A』}。使用索引順序讀取a的元素,並按照索引順序將元素放到變換後的的數組中。如果不進行order參數的設置,默認參數為C。

(1)「C」指的是用類C寫的讀/索引順序的元素,最後一個維度變化最快,第一個維度變化最慢。以二維數組為例,簡單來講就是橫著讀,橫著寫,優先讀/寫一行。

(2)「F」是指用FORTRAN類索引順序讀/寫元素,最後一個維度變化最慢,第一個維度變化最快。豎著讀,豎著寫,優先讀/寫一列。注意,「C」和「F」選項不考慮底層數組的內存布局,只引用索引的順序。

(3)「A」選項所生成的數組的效果與原數組a的數據存儲方式有關,如果數據是按照FORTRAN存儲的話,它的生成效果與」F「相同,否則與「C」相同。這裡可能聽起來有點模糊,下面會給出示例。

二、示例解釋

1、首先隨機生成一個4行3列的數組

2、使用reshape,這裡有兩種使用方法,可以使用np.reshape(r,(-1,1),order=’F’),也可以使用r1=r.reshape((-1,1),order=’F’),這裡我選擇使用第二種方法。通過示例可以觀察不同的order參數效果。

通過例子可以看出來,F是優先對列信息進行操作,而C是優先行信息操作。如果未對r的格式進行設置,那麼我們rashape的時候以「A」的順序進行order的話,它的效果和「C」相同。

3、我們將r的存儲方式進行修改,修改為類Fortan的方式進行存儲。並做與第2步類似的操作。

基礎操作樣例:

1.引入numpy,名稱為np 

2.接下來創建一個數組a,可以看到這是一個一維的數組 

3.使用reshape()方法來更改數組的形狀,可以看到看數組d成為了一個二維數組

4.通過reshape生成的新數組和原始數組公用一個內存,也就是說,假如更改一個數組的元素,另一個數組也將發生改變 

5.同理還可以得到一個三維數組 

reshape(-1,1)什麼意思:

大意是說,數組新的shape屬性應該要與原來的配套,如果等於-1的話,那麼Numpy會根據剩下的維度計算出數組的另外一個shape屬性值。

舉例:

同理,只給定行數,newshape等於-1,Numpy也可以自動計算出新數組的列數。

(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

numpy是我學習python遇到的第一個第三方工具包,它可以讓我們快速上手數據分析。numpy提供了向量和矩陣計算和處理的大部分介面。目前很多python的基礎工具包都是基於numpy開發而來,比如 scikit-learn, SciPy, pandas, 還有 tensorflow。 numpy可以處理表格、圖像、文本等數據,極大地方便我們處理和分析數據。本文主要內容來自於Jay Alammar的一篇文章以及自己學習記錄。

原文地址:

使用過程中,如果希望 Numpy 能創建並初始化數組的值, Numpy 提供了 ones()、zeros() 和 random.random() 等方法。只需傳遞希望生成的元素數量(大小)即可:

還可以進行如下操作:

一般,需要數組和單個數字之間也可以進行運算操作(即向量和標量之間的運算)。比如說 data * 1.6 ,numpy利用一個叫做廣播機制(broadcasting)的概念實現了這一運算。:

我們可以通過索引對numpy數據獲取任意位置數據或者對數據切片

我們可以通過numpy自帶的函數對數據進行一些想要的聚合計算,比如min、max 和 sum ,還可以使用 mean 得到平均值,使用 prod 得到所有元素的乘積,使用 std 得到標準差等等。

上述操作不僅可以應用於單維度數據,還可以用於多維度數據{(矩陣)。

同樣可以使用ones()、zeros() 和 random.random()創建矩陣,只要寫入一個描述矩陣維數的元組即可:

numpy還可以處理更高維度的數據:

創建更高維度數據只需要在創建時,在參數中增加一個維度值即可:

根據數組中數值是否滿足條件,輸出為True或False.

希望得到滿足條件的索引,用np.where函數實現.

根據索引得到對應位置的值.

np.where也可以接受另兩個可選擇的參數a和b。當條件滿足時,輸出a,反之輸出b.

獲取數組最大值和最小值的索引可以使用np.argmax和np.argmin.

1、numpy.tofile()和numpy.fromfile()

保存為二進位格式,但是不保存數組形狀和數據類型, 即都壓縮為一維的數組,需要自己記錄數據的形狀,讀取的時候再reshape.

2、numpy.save() 和 numpy.load()

保存為二進位格式,保存數組形狀和數據類型, 不需要進行reshape

實例:

3、numpy.savetxt()和numpy.loadtxt()

np.savetxt(fname,array,fmt=』%.18e』,delimiter=None)

Parameter解釋:

array:待存入文件的數組。

fmt:寫入文件的格式

實例:

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/238515.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:11
下一篇 2024-12-12 12:11

相關推薦

  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29

發表回復

登錄後才能評論