numpy中ndarray數據結構簡介


一、綜述

  1、ndarray的本質是:對象

     2、ndarray是numpy中的數據結構(叫做:n維數組),是同構數據多維容器,所有元素必須是相同類型

  3、面向數組的編程和思維方式:用簡潔的數組表達式代替循環寫法,通常叫做 --‘矢量化’

 二、創建ndarray對象

  3種方式: (1)從python的基礎數據對象轉化; (2)通過numpy內置函數生成 ; (3)從硬盤(文件)中直接讀取

 

  2.1 直接從list對象創建

    a = np.array([1,2,3,4,5])  # array([1,2,3,4,5])

    b = np.array([1,2,3,4,5],dtype=np.float)   #  array([1.,2.,3.,4.,5.])   創建時直接轉換數據類型

    c = a.astype(np.float64)   #array([1.,2.,3.,4.,5.])   創建后,通過內置的astype() 函數,轉換數據類型

  2.2 通過numpy內置函數生成

    

   2.3  從硬盤(文件)中直接讀取

    numpy.loadtxt()

      參數:

         fname :文件 或者文件路徑(字符串),支持壓縮的數據文件 包括gz、bz

         dtype:數據類型,默認為float64(64位雙精度浮點數)

         comments: 字符串或 字符串組成的列表,默認為# , 是表示注釋字符集開始的標志

         delimiter: 字符串,用來分割多個列的分隔符,默認 為 空格

            converters: 字典, 用於將特定列的數據,轉換為字典中對應的函數的浮點型數據,默認為空

            skiprows : 正整數n,讀取時跳過前n行,默認為零

            usecols : 元組(元組內數據為列的數值索引), 用來指定要讀取數據的列(第一列為0),默認為空

         unpack: 布爾值(True/False), 用來指定是否轉置

         ndmin : 整數型,值域為0、1、2,默認為0, 用於指定返回的數組至少包含特定維度的數組

    numpy.savetxt()

三、ndarray屬性:   

  1、ndarray.ndim:數組的維數(即數組軸的個數,也被稱作為  秩 )。

  2、ndarray.shape:數組的維數、維度,返回一個元組,這個元組的長度就是維度的數目,即ndim屬性。比如2排3列的矩陣,其shape就是二元組(2,3)

  3、ndarray.size:數組元素的總個數,等於shape屬性的 元組中各元素的乘積。

  4、ndarray.dtype:表示數組中元素類型的對象

  5、itemsize : 數組中 每個元素 占用的 字節大小

  6、ndarray.flags  #返回數組內部的信息(

          C_CONTIGUOUS : True   
          F_CONTIGUOUS : False
          OWNDATA : True
          WRITEABLE : True
          ALIGNED : True
          UPDATEIFCOPY : False

特殊,ndarray對象可 通過 reshape() 方法,重新組織數組的維數維度(即數組的形狀),其中用 -1代表自動推斷某維度的維數

四、ndarray方法

  ndarray.ptp(axis=None,out=None) # 返回數組的最大值-最小值  或者   某一個軸的最大值-最小值

  ndarray.clip(a_min,a_max,out=None) # 小於最小值的賦值為 最小值 ;大於最大值的 賦值為 最大值

  ndarray.all()  # 如果所有元素都為真,那么返回真;否則,返回假

  ndarray.any() #如果所有元素有任何一個真,則返回真

  ndarray.swapaxes(axis1,axis2)  # 交換兩個軸的元素,  軸用數字表示,0,1,2......

  下面為改變數組維度和大小的方法

  ndarray. reshape() #  改變數組的形狀,不改變數組中元素的個數

  ndarray.resize() # 改變數組元素的個數

  ndarray.transpose(*axes)  # 返回轉置矩陣

  ndarray.flatten() # 將原矩陣轉換為一維數組

  ndarray.reval() # 返回 一維數組

  ndarray.squeeze()  # 移出長度為1的軸

  ndarray.tolist()  #  將數組轉化為列表

  ndarray.take(indices,axis=None,out = None,mode = 'raise') # 獲得數組的指定索引的數據

  

  numpy.put(a,index,v,mode='raise') #  用v的值替代數組a中index處的值,Mode可以為raise/wrap/clip 。clip :如果給的index超過了數組的大小,那么替換最后一個元素

  numpy.repeat(a,repeats_num,axis = None)  # 重復數組的元素  

  numpy.tile(A, reps):根據給定的reps重復數組A,和repeat不同,repeat是重復元素,該方法是重復數組。

  ndarray.var(axis=None, dtype=None, out=None, ddof=0):返回數組的方差,沿指定的軸。

  ndarray.std(axis=None, dtype=None, out=None, ddof=0):沿給定的軸返回數則的標准差

  ndarray.prod(axis=None, dtype=None, out=None):返回指定軸的所有元素乘機

  ndarray.cumprod(axis=None, dtype=None, out=None):返回指定軸的累積,如下:

  ndarray.mean(axis=None, dtype=None, out=None):返回指定軸的數組元素均值

  ndarray.cumsum(axis=None, dtype=None, out=None):返回指定軸的元素累計和。

  ndarray.sum(axis=None, dtype=None, out=None):返回指定軸所有元素的和

  ndarray.trace(offset=0, axis1=0, axis2=1, dtype=None, out=None):返回沿對角線的數組元素之和

  ndarray.round(decimals=0, out=None):將數組中的元素按指定的精度進行四舍五入

  ndarray.conj():返回所有復數元素的共軛復數,

  ndarray.argmin(axis=None, out=None):返回指定軸最小元素的索引。

  ndarray.min(axis=None, out=None):返回指定軸的最小值

  ndarray.argmax(axis=None, out=None):返回指定軸的最大元素索引值

  ndarray.diagonal(offset=0, axis1=0, axis2=1):返回對角線的所有元素。  

  ndarray.compress(condition, axis=None, out=None):返回指定軸上條件下的切片。

  ndarray.nonzero():返回非零元素的索引

五 、ndarray數據類型

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM