一、綜述
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數據類型