D02 Numpy常用函數,如何優雅的遍歷一個多維數組?

2021-01-11 Adolph說派森

title: D02|Numpy常用函數author: Adolph Leecategories: 數據挖掘基礎tags:

Python數據挖掘基礎Numpy

如何遍歷一個數組,使用嵌套for循環嗎?

當我們想要遍歷一個多維數組的時候,如果通過不停的使用循環去遍歷,這會讓我們的代碼可讀性與性能都變得很差,numpy提供了一個函數nditer,以幫助我們遍歷數組。nditer的入參是一個數組,返回值是一個可迭代對象。nditer 默認會優先遍歷行序,通過order參數可以使其優先遍歷列序。

numpy.nditer

nditer返回一個迭代器對象nditer默認優先遍歷行序nditer默認返回0維數組

改變數組形狀

在實際問題的處理之中,我們經常需要改變數組的形狀,以轉換為更為適合處理的數據結構。reshape用於在不改變數組數據的條件下,修改數組的形狀,我們在快速創建矩陣的適合已經多次使用過該函數。下面再來簡單回顧一下。

reshape

numpy.reshape(arr, newshape, order=』C』)arr 是需要改變形狀的數組newshape 是新數組的維度屬性,新數組的維度屬性應與原數組兼容,例如行列相等order 是指定按行序或列序改變數組,』C』 — 按行,』F』 — 按列,』A』 — 原順序,』k』 — 元素在內存中的出現順序。其默認值為』C』。

數組轉置

ndarray.T,該方法會將數組進行行列轉換

數組切割

數據切割,顧名思義是將數組切割為多個數組。關於數組切割,numpy提供了一個強大的函數split,split可以指定按照橫向或則豎向切割數組。

numpy.split(ary, indices_or_sections, axis)ary 是需要切割數組indices_or_sections 指定需要切割的份數axis 是指定數組的切割方向,默認為0,橫向切割, axis=1時為豎向切割

向數組中添加元素

numpy提供了兩個向數組中添加元素的方法,分別時append方法和insert方法。append方法會將元素添加至原數組末尾,insert方法會將元素插入到指定索引位置。下面分別來練習一下兩種方法的使用。

append

numpy.append(arr, values, axis=None)append默認返回一個一維數組arr為需要執行插入操作的數組values為需要插入的值axis指定插入方式 axis=0為按行插入,axis=1為按列插入當指定axis時 插入的數組維度必須與原數組相等

insert

numpy.insert(arr, obj, values, axis)insert默認返回一個一維數組arr 需要插入元素的數組obj 需要插入的索引位置values 需要插入的值axis 指定插入方式,axis=0為按行插入,axis=1為按列插入

刪除數組中的元素

怎麼樣,通過numpy我們可以很方便的操作複雜的數組,下面來看一下本節最後一個內容,數組中元素的刪除delete,delete與insert,append一樣它們不會改變元素組,而是會返回一個新數組,下面來練習一下delete的使用。

delete

numpy.delete(arr, obj, axis)arr 是需要執行刪除操作的數組obj 是需要刪除元素的索引位置axis 是指定行序列序,axis=0為行序,axis=1為列序,默認是將數組展開為1維數組

關於numpy的基礎即將結束,下一章將會講解numpy的統計、排序與篩選,在這之後便會進入下一張pandas基礎的講解。

轉載請註明出處

相關焦點

  • Python Numpy-數組的常用函數
    下面介紹一些常用的數組操作函數和統計函數。將數組變形,參數是一個tuple。注意:數組元素總數要一致。、median中位數函數、percentile函數ravel函數將多維數組變成一維數組median函數,中位數將數據從小到大排列,選取正中間的數percentile函數是計算一個多維數組的任意百分比分位數,此處的百分位是從小到大排列示例1:import
  • NumPy ndarray數組的創建
    +Tab鍵查看可使用的函數,如果對其中一些函數的使用不是很清楚,還可以在對應函數加上?,再運行,就可以很方便地看到如何使用函數的幫助信息。輸入np.然後按 Tab 鍵,將出現如下界面:圖1:查看 NumPy 可以使用的函數運行如下命令,便可查看函數 abs 的詳細幫助信息。np.abs?
  • Python數據分析類庫系列-Numpy之多維數組ndarray
    -- ndarray NumPy最重要的一個特點就是其N維數組對象(即ndarray),該對象是一個快速而靈活的大數據集容器。 要明白Python是如何利用與標量值類似的語法進行批次計算,我先引入NumPy,然後生成一個包含隨機數據的小數組: import numpy as np data = np.random.randn(2,3)data out:
  • NumPy基礎教程,帶你玩轉多維數組
    Python 中的標準 type 函數同樣可以用於顯示數組類型,NumPy 有它自己的類型如:numpy.int32, numpy.int16, 和 numpy.float64,其中「int」和「float」代表數據的種類是整數還是浮點數,「32」和「16」代表這個數組的字節數(存儲大小)。ndarray.itemsize:數組中每個元素的字節存儲大小。
  • Python中的Numpy基礎20問
    如何改變數組的形狀?前面說過,數組的shape屬性返回一個元組,能夠反映數組的形狀,包括維度以及每個軸的元素數量。那麼如果給定一個數組,怎麼改變其形狀呢?常用的方式有兩種:reshape方法,它返回一個新的數組,而不能改變原始數組。resize方法,無返回值,它更改了原始數組。
  • 如何獲取numpy數組的真實地址?如何與ctypes數組共享內存?
    01如何獲取numpy數組元素的真實地址?在Python編程中,numpy是一個很好用的擴展程序庫,將其與SciPy庫和 Matplotlib繪圖庫一起使用,可構成一個強大的類似於Matlab的科學計算環境,有助於我們通過 Python 學習數據科學或者機器學習。在Python中,當你定義了一個numpy類型的數組後,它內部元素的真實地址如何獲得呢?
  • 圖解NumPy:常用函數的內在機制
    支持大量多維數組和矩陣運算的 NumPy 軟體庫是許多機器學習開發者和研究者的必備工具,本文將通過直觀易懂的圖示解析常用的 NumPy 功能和函數,幫助你理解 NumPy 操作數組的內在機制。NumPy 是一個基礎軟體庫,很多常用的 Python 數據處理軟體庫都使用了它或受到了它的啟發,包括 pandas、PyTorch、TensorFlow、Keras 等。理解 NumPy 的工作機制能夠幫助你提升在這些軟體庫方面的技能。而且在 GPU 上使用 NumPy 時,無需修改或僅需少量修改代碼。NumPy 的核心概念是 n 維數組。
  • D01 Numpy簡介,為什麼Numpy那麼快
    Numpy是一個基礎的科學計算包Numpy的核心是ndarray對象ndarray封裝了Python的數組ndarray的幾個特點ndarray是一個多維數組ndarray在創建之初便固定了大小,如果更改ndarray對象的大小,本質上是先新增後刪除。ndarray中的元素需要相同的數據類型。
  • NumPy ndarray數組元素的獲取
    生成 ndarray 數組後,如何讀取我們所需要的數據呢?
  • Python數據分析之numpy數組全解析
    5.2 bool索引6 numpy中賦值、視圖、深複製什麼是numpy numpy是一個在Python中做科學計算的基礎庫,重在數值計算,也是大部分Python科學計算庫的基礎庫,多用於大型、多維數據上執行數值計算。
  • Python使用ctypes模塊調用DLL函數之C語言數組與numpy數組傳遞
    一般情況下,DLL函數中傳遞C語言類型的數組,在接收到Python語言中時,通常將其轉換為numpy庫裡面的數組類型,這樣做的好處是可以藉助於numpy強大的分析處理功能對數據直接作後續處理。這次通過例子演示下C語言數組到numpy數組之間是怎樣傳遞的。
  • Python編程:如何規範numpy中數組元素的列印輸出格式
    引言對於Python語言開發者,如果你經常處理大量數據運算的話,numpy是一個必不可少的程序擴展庫,它支持大維度數組與矩陣運算,提供了非常豐富的數學運算函數,並且,相對於Python自身提供的列表類型,它在運算速度上有著無與倫比的優勢。
  • NumPy的數組對象
    NumPy的主要操作對象是同類型的多維數組,數組中的所有元素類型都是相同的,數組對象名是ndarray,別名是array。的empty函數創建數組元素為隨機內容的數組,隨機內容取決於存儲器的狀態;(5)使用NumPy的arange函數創建等間隔的數字數組。
  • 一起學JAVA——數組和函數
    函數的重載和返回值類型無關。數組什麼是數組數組是一個類型一致,長度不可變的容器。可以通過索引操作容器中的每一個元素。如果有多個類型相同的數據需要存儲,我們就可以將其定義為一個數組,這樣做省去了創建多個變量的麻煩。
  • Python入門教程(二):Numpy數組基礎
    >數組的變形改變給定數組的形狀數組的拼接和分裂將多個數組合併為一個,以及將一個數組分類為多個。,有結果可見,x3是一個3維的數組,每一個維度都有三行四列,其中一共包含60個元素。x1# array([5, 0, 3, 3, 7, 9])python中的索引從0開始計數,直到n-1,以下例子獲取了x1中的第1一個數值和第5個值。負值索引可以獲取末尾索引。多維數組在多維數組中,可以用逗號分隔的索引元組獲取元素。
  • 記錄集賦值給數組後,利用轉置函數處理多維數組的方法
    大家好,今日繼續講解VBA資料庫解決方案,今日講解的是第76講,內容是:記錄集賦值給數組後,利用轉置函數處理多維數組的方法。我在第一冊的第43講中,我講了將記錄集存入數組的方案,並通過一個Index函數在工作表中恢復數組數據的方法。今日講的是利用轉置函數來完成同樣的功能。
  • 清晰易懂的Numpy入門教程
    如何構建numpy數組2. 如何觀察數組屬性的大小和形狀(shape)3. 如何從數組提取特定的項4. 如何從現有的數組定義新數組5. 多維數組的重構(reshaping)和扁平(flattening)6.
  • 以別墅圖片為例 結合numpy和OpenCV庫 探尋Python中數組組合方式
    前幾篇博文我們介紹了numpy的基礎知識numpy庫學習總結(基礎知識)和numpy中array數組的維度變化Python數據分析必備基本功 numpy數組維度變換的常用方法匯總。今天,我們來梳理一下numpy中數組array的組合操作。
  • 看圖學NumPy:掌握n維數組基礎知識點,看這一篇就夠了
    實際上,所有用常量填充創建的數組的函數都有一個_like對應項,來創建相同類型的常數數組:查找元素的一種方法是np.where(a==x)[0][0],它既不優雅也不快速,因為要查找的項需要從開頭遍歷數組的所有元素。
  • Numpy的ndarray:一種多維數組對象
    前言Numpy最重要的一個特點就是其N維數組對象(即ndarray),該對象是一個快速而靈活的大數據集容器。可以利用這種數組對整塊數據執行一些數學運算。模塊導入方式如下:import numpy as npndarray是一個通用的同構數據多維容器,也就是說,其中的所有元素必須是相同類型的。