NumPy的數組對象

2021-01-08 米粒教育

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庫-創建數組
    一、創建數組numpy.emptynumpy.empty 方法用來創建一個指定形狀(shape)、數據類型(dtype)且未初始化的數組:numpy.empty(shapenumpy.frombuffer 接受 buffer 輸入參數,以流的形式讀入轉化成 ndarray 對象。
  • D02 Numpy常用函數,如何優雅的遍歷一個多維數組?
    當我們想要遍歷一個多維數組的時候,如果通過不停的使用循環去遍歷,這會讓我們的代碼可讀性與性能都變得很差,numpy提供了一個函數nditer,以幫助我們遍歷數組。nditer的入參是一個數組,返回值是一個可迭代對象。nditer 默認會優先遍歷行序,通過order參數可以使其優先遍歷列序。
  • Numpy庫對數組進行操作
    創建隨機數矩陣後,如果使用表示條件的運算符,比如這裡的小於號,你將會得到布爾值組成的數組。對於原數組中條件滿足的元素,布爾數組中處於同等位置(也就是小於0.5的元素所處的位置)的元素為True。實際上,從數組中選取一部分元素時,隱式地用到了布爾數組。其實,直接把條件表達式置於方括號中,也能抽取所有小於0.5的元素,組成一個新數組。
  • 如何獲取numpy數組地址?如何與ctypes數組共享內存?
    1、如何獲取numpy數組元素的真實地址?在Python中,當你定義了一個numpy類型的數組後,它內部元素的真實地址如何獲得呢?__array_interface__['data'])上面程序定義了一個numpy類型的數組a,運行後得到:(1883707159072, False)接口「__array_interface__」返回一個包含兩個元素的元組,其第1個元素即為a數組內部元素存放的真實地址,第2個元素標明了該數組是否為
  • 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數組的真實地址?如何與ctypes數組共享內存?
    在Python編程中,numpy是一個很好用的擴展程序庫,將其與SciPy庫和 Matplotlib繪圖庫一起使用,可構成一個強大的類似於Matlab的科學計算環境,有助於我們通過 Python 學習數據科學或者機器學習。在Python中,當你定義了一個numpy類型的數組後,它內部元素的真實地址如何獲得呢?
  • Python使用ctypes模塊調用DLL函數之C語言數組與numpy數組傳遞
    一般情況下,DLL函數中傳遞C語言類型的數組,在接收到Python語言中時,通常將其轉換為numpy庫裡面的數組類型,這樣做的好處是可以藉助於numpy強大的分析處理功能對數據直接作後續處理。這次通過例子演示下C語言數組到numpy數組之間是怎樣傳遞的。
  • D01 Numpy簡介,為什麼Numpy那麼快
    title: D01|Numpy簡介author: Adolph Leecategories: 數據挖掘基礎tags:Python數據挖掘基礎Numpy初識NumpyNumpy是一個Python基礎科學計算包,它的核心是多維數組ndarray對象,Numpy
  • Python教程:numpy數組初始化為相同的值
    有時我們需要將numpy數組初始化為相同的值,numpy提供了一些方法幫助我們實現這個目的。 1. np.zeros np.zeros返回來一個給定形狀和類型的用0填充的數組。
  • 數據分析-numpy庫快速了解
    數組對象可以去掉元素間運算所需的循環,使一維向量更像單個數據 設置專門的數組對象,經過優化,可以提升這類應用的運算速度觀察:科學計算中,一個維度所有數據的類型往往相同 數組對象採用相同的數據類型,有助於節省運算和存儲空間具體可以看下面一個例子:(來源嵩天老師案例)3.numpy庫怎麼使用先安裝numpy
  • numpy庫學習總結(基礎知識)
    安裝成功後,我們在Python編譯器中進行測試,使用import numpy,如果不報錯,說明我們的numpy安裝無誤了。【numpy庫基本使用】Numpy中定義的最重要使用最頻繁的對象就是ndarray的N維數組類型。它描述相同類型(dtype)的元素集合,可以使用基於零的索引訪問集合中的項目,它的類似Python中的列表索引。
  • 機器學習之NumPy庫學習1
    NumPy 是一個運行速度非常快的數學庫,主要用於數組計算,包含:一個強大的N維數組對象 ndarray廣播功能函數整合 C/C++/Fortran 代碼的工具線性代數、傅立葉變換、隨機數生成等功能二、NumPy、SciPy和Matplotlib
  • 如何把小豬佩奇放到多維空間裡(深入理解numpy中的ndarray對象)
    在使用numpy對ndarray對象進行處理時,我們動輒就會碰到大於二維的數據。這時候,很多小朋友肯定會犯難,如何理解這些數據?怎麼才能在腦海裡把這些數據跟我們的現實生活聯繫起來進行理解呢?今天,我帶大家通過一個實例來深入理解一下這個數據結構。【問 題】我們手頭有一棟新樓房(樓房沒有門牌號),裡面住著n個小豬佩奇。
  • 代碼詳解:Numpy——通往人工智慧的大門
    在本教程中,你將學習如何在Numpy數組上執行一系列操作,例如以多種方式添加、刪除、排序和操作元素。Numpy提供一個多維數組對象和其他派生數組,如掩碼數組或掩碼多維數組。為什麼使用Numpy?Numpy模塊提供一個ndarray對象,我們可以用這個對象來對任意維度的數組執行操作。ndarray代表N維數組,其中N是任意數字。
  • Python中NumPy簡介及使用舉例
    NumPy中定義的最重要的對象是稱為ndarray的N維數組類型。它描述相同類型的元素集合,可以使用基於零的索引訪問集合中元素。基本的ndarray是使用NumPy中的數組函數創建的: numpy.array。NumPy支持比Python更多種類的數值類型。NumPy數值是dtype(數據類型)對象的實例,每個對象具有唯一的特徵。
  • 以別墅圖片為例 結合numpy和OpenCV庫 探尋Python中數組組合方式
    前幾篇博文我們介紹了numpy的基礎知識numpy庫學習總結(基礎知識)和numpy中array數組的維度變化Python數據分析必備基本功 numpy數組維度變換的常用方法匯總。今天,我們來梳理一下numpy中數組array的組合操作。
  • 機器學習之NumPy庫學習2
    numpy 的數值類型實際上是 dtype 對象的實例,並對應唯一的字符,包括 np.bool_,np.int32,np.float32,等等。數據類型對象 (dtype)數據類型對象是用來描述與數組對應的內存區域如何使用,這依賴如下幾個方面:數據的類型(整數,浮點數或者 Python 對象)數據的大小(例如, 整數使用多少個字節存儲)數據的字節順序(小端法或大端法)在結構化類型的情況下
  • Python學習第113課——numpy中用條件判斷去篩選數組中的元素
    之前我們學習了如何在numpy中查找數組元素的方法和技巧,現在我們學習如何用條件判斷的方式篩選數組的元素。●numpy中的數組可以直接進行比較直接上代碼:運行結果:我們看到,condition列印出來,它的結構和h的結構一樣。