NumPy的數組對象

2021-01-10 米粒教育

NumPy的主要操作對象是同類型的多維數組,數組中的所有元素類型都是相同的,數組對象名是ndarray,別名是array。

一、創建數組

可以有多種方式創建NumPy數組:(1)使用NumPy的array函數從Python列表中創建數組,數組類型由列表中的數據類型確定;(2)使用NumPy的zeros函數創建數組元素全部為0的數組,默認情況下數組元素的類型為float64;(3)使用NumPy的ones函數創建數組元素全部為1的數組,默認情況下數組元素的類型為float64;(4)使用NumPy的empty函數創建數組元素為隨機內容的數組,隨機內容取決於存儲器的狀態;(5)使用NumPy的arange函數創建等間隔的數字數組。

1、使用NumPy的array函數創建數組

使用NumPy的array函數可以創建1維、2維、……、n維數組,array函數要求傳入Python列表數據,傳入Python列表數據的嵌套層次決定了創建數組的維數。下面給出了創建1維和2維數組的案例,更多維數組的創建與2維數組的創建類同。

(1) 創建1維數組

要創建1維數組,只需在array函數中傳入單層列表數據即可。在程序中使用NumPy數學計算包,需要將NumPy包導入到程序中。

下面的代碼創建了整數類型(int32)的1維數組,數組變量名稱是dim1,np是numpy包的引用名稱,傳入到array函數的是單層列表。

(2)創建2維數組

只要在array函數中傳入兩層嵌套的列表數據即可創建2維數組。下面的代碼創建了浮點類型(float64)的2維數組。

2、使用NumPy的zeros、ones、empty函數創建數組

使用NumPy的zeros、ones、empty函數可以創建指定維數的數組,zeros函數用0填充所有的數組元素,ones函數用1填充所有的數組元素,empty函數用隨機內容填充所有的數組元素。

(1)創建1維數組

下面的代碼分別使用zeros、ones、empty函數創建了a、b、c三個1維數組。a數組有3個元素,元素內容都為0,b數組有5個元素,元素內容都為1,c數組有3個元素,元素內容都為0(填充的元素內容機內容取決於存儲器的狀態)。

(2)創建2維或更多維數組

使用zeros、ones、empty函數創建2維或更多維數組時,需要傳入Python元組數據,元組內的元素個數(元組長度)指定了數組的維度,元素的值指定了當前元素所在的數組維度所包含元素的個數。例如:使用元組(3,4)創建的a數組是2維數組,第1維有三個元素,第2維有4個元素;使用元組(3,2,4)創建的d數組是3維數組,第1維有3個元素,第2維有2個元素,第3維有4個元素。

(3)創建指定類型的數組

使用zeros、ones、empty函數可以創建指定數據類型的數組,zeros、ones、empty函數創建數組時,默認的數據類型是float64,如果需要創建其它數據類型的數組,可以在函數中指定數據類型。

下面的代碼創建數據類型為complex的二維數組。

二、NumPy數組對象的屬性

NumPy的array數組對象提供了一些關鍵屬性,可以輸出數組的特性。下表給出了array數組對象的關鍵屬性名稱及作用。

下面的代碼創建了2維數組a,第1維有2個元素,第2維有3個元素。數組的總元素個數為2*3=6,數組元素的數據類型是int32,每個字節的元素長度是4個字節。

相關焦點

  • Numpy的ndarray:一種多維數組對象
    前言Numpy最重要的一個特點就是其N維數組對象(即ndarray),該對象是一個快速而靈活的大數據集容器。可以利用這種數組對整塊數據執行一些數學運算。模塊導入方式如下:import numpy as npndarray是一個通用的同構數據多維容器,也就是說,其中的所有元素必須是相同類型的。
  • NumPy ndarray數組的創建
    NumPy 封裝了一個新的數據類型 ndarray(N-dimensional Array),它是一個多維數組對象。該對象封裝了許多常用的數學運算函數,方便我們做數據處理、數據分析等。那麼,如何生成 ndarray 呢?
  • Python數據分析之numpy數組全解析
    1 什麼是numpy2 numpy數組創建2.1 基本方法:np.array()2.2 通用方法:np.ones()、np.zeros()、np.eye()2.3 讀取外部數據3 numpy中數組的數據類型4 numpy中數組的形狀5 索引與切片5.1 按索引取值
  • D02 Numpy常用函數,如何優雅的遍歷一個多維數組?
    當我們想要遍歷一個多維數組的時候,如果通過不停的使用循環去遍歷,這會讓我們的代碼可讀性與性能都變得很差,numpy提供了一個函數nditer,以幫助我們遍歷數組。nditer的入參是一個數組,返回值是一個可迭代對象。nditer 默認會優先遍歷行序,通過order參數可以使其優先遍歷列序。
  • Python數據分析類庫系列-Numpy之多維數組ndarray
    NumPy之於數值計算特別重要的原因之一,是因為它可以高效處理大數組的數據。 這是因為: NumPy是在一個連續的內存塊中存儲數據,獨立於其他Python內置對象。NumPy的C語言編寫的算法庫可以操作內存,而不必進行類型檢查或其它前期工作。
  • 如何獲取numpy數組的真實地址?如何與ctypes數組共享內存?
    01如何獲取numpy數組元素的真實地址?在Python編程中,numpy是一個很好用的擴展程序庫,將其與SciPy庫和 Matplotlib繪圖庫一起使用,可構成一個強大的類似於Matlab的科學計算環境,有助於我們通過 Python 學習數據科學或者機器學習。在Python中,當你定義了一個numpy類型的數組後,它內部元素的真實地址如何獲得呢?
  • numpy中的數據類型對象有哪些
    Numpy數據類型numpy是一個python擴展包,它可以為我們提供更精確的科學技術,更強大的數學能力。為此,numpy定義了比python更豐富的數據類型來達成目的。Numpy中的數據類型,實質是數據類型對象dtype的實例。Numpy中的Ndarray對象可以幫助我們構建N維數組對象。我們知道,對於數組來說,最大特點是,對於給定長度的數組,其在內存中所佔用的空間大小是預先分配的,並且,每個元素所佔用的空間大小是相當的。那麼,Ndarray怎麼計算每個元素所佔用的空間大小呢?就是根據dtype。
  • Python數據分析之Numpy學習 2——NumPy 基礎 ndarray對象
    NumPy的主要對象是同構數據多維容器(homogeneous multidimensional array)——ndarray,也就是說每一個ndarray都是一個相同類型元素組成的表格(二維)。在NumPy中維度(dimensions)叫做軸(axes),軸的個數叫做秩(rank)。軸這個概念必須牢記,否則放棄吧。首先軸是從0開始計的,0代表最高維,次高維是1,以此類推。
  • NumPy ndarray數組元素的獲取
    生成 ndarray 數組後,如何讀取我們所需要的數據呢?
  • Python Numpy-數組的常用函數
    日常使用numpy進行數據分析的時候,通常會使用模塊提供的函數,很大程度上方便了對於數據的操作。
  • Python使用ctypes模塊調用DLL函數之C語言數組與numpy數組傳遞
    一般情況下,DLL函數中傳遞C語言類型的數組,在接收到Python語言中時,通常將其轉換為numpy庫裡面的數組類型,這樣做的好處是可以藉助於numpy強大的分析處理功能對數據直接作後續處理。這次通過例子演示下C語言數組到numpy數組之間是怎樣傳遞的。
  • NumPy基礎教程,帶你玩轉多維數組
    選自機器之心NumPy 主要的運算對象為同質的多維數組,即由同一類型元素(一般是數字)組成的表格,且所有元素通過正整數元組進行索引
  • Python教程:numpy數組初始化為相同的值
    有時我們需要將numpy數組初始化為相同的值,numpy提供了一些方法幫助我們實現這個目的。 1. np.zeros np.zeros返回來一個給定形狀和類型的用0填充的數組。
  • D01 Numpy簡介,為什麼Numpy那麼快
    title: D01|Numpy簡介author: Adolph Leecategories: 數據挖掘基礎tags:Python數據挖掘基礎Numpy初識NumpyNumpy是一個Python基礎科學計算包,它的核心是多維數組ndarray對象,Numpy
  • 數據分析-numpy庫快速了解
    數組對象可以去掉元素間運算所需的循環,使一維向量更像單個數據 設置專門的數組對象,經過優化,可以提升這類應用的運算速度觀察:科學計算中,一個維度所有數據的類型往往相同 數組對象採用相同的數據類型,有助於節省運算和存儲空間具體可以看下面一個例子:(來源嵩天老師案例)3.numpy庫怎麼使用先安裝numpy
  • numpy庫學習總結(基礎知識)
    安裝成功後,我們在Python編譯器中進行測試,使用import numpy,如果不報錯,說明我們的numpy安裝無誤了。【numpy庫基本使用】Numpy中定義的最重要使用最頻繁的對象就是ndarray的N維數組類型。它描述相同類型(dtype)的元素集合,可以使用基於零的索引訪問集合中的項目,它的類似Python中的列表索引。
  • 如何把小豬佩奇放到多維空間裡(深入理解numpy中的ndarray對象)
    在使用numpy對ndarray對象進行處理時,我們動輒就會碰到大於二維的數據。這時候,很多小朋友肯定會犯難,如何理解這些數據?怎麼才能在腦海裡把這些數據跟我們的現實生活聯繫起來進行理解呢?今天,我帶大家通過一個實例來深入理解一下這個數據結構。【問 題】我們手頭有一棟新樓房(樓房沒有門牌號),裡面住著n個小豬佩奇。
  • Numpy高級操作大全!!!
    NumPy 包含一個迭代器對象numpy.nditer。它是一個有效的多維迭代器對象,可以用於在數組上進行迭代。數組的每個元素可使用 Python 的標準Iterator接口來訪問。0510152025303540455055如果兩個數組是可廣播的,nditer組合對象能夠同時迭代它們。
  • Python中NumPy簡介及使用舉例
    NumPy中定義的最重要的對象是稱為ndarray的N維數組類型。它描述相同類型的元素集合,可以使用基於零的索引訪問集合中元素。基本的ndarray是使用NumPy中的數組函數創建的: numpy.array。NumPy支持比Python更多種類的數值類型。NumPy數值是dtype(數據類型)對象的實例,每個對象具有唯一的特徵。
  • 以別墅圖片為例 結合numpy和OpenCV庫 探尋Python中數組組合方式
    前幾篇博文我們介紹了numpy的基礎知識numpy庫學習總結(基礎知識)和numpy中array數組的維度變化Python數據分析必備基本功 numpy數組維度變換的常用方法匯總。今天,我們來梳理一下numpy中數組array的組合操作。