Numpy筆記

Numpy

ndarray對象是一種由同質元素組成的多維數組。它的特色是:python

  • 元素數量預先指定好
  • 同質:幾乎全部元素的類型和大小都相同

元素的類型經過ndarray.dtype獲取數組

ndarray.ndim描述軸的數量,即秩的大小app

ndarray.size描述數組長度dom

ndarray.shape描述數組的型,軸的數量和數組長度,它的返回值是一個元組類型,有兩種形式:函數

  • (size,)spa

    元組只有一個元素,表示數組軸數是1,數組長度是\(size\)code

  • (n,size)對象

    \(n<=2\),表示數組的軸數是2;當\(n > 2\),表示數組的軸數是\(n\).數組長度是\(size\)索引

建立ndarray對象

  1. numpy.array()
  2. numpy.arange(start,end,step=1)
  3. numpy.random.random(number) or numpy.random.random((row,col))
  4. numpy.zeros((row,col))
  5. numpy.ones((row,col))
  6. numpy.linspace(start,end,分隔區間的數量)

基本操做

  • 算數運算符string

    當矩陣和一個標量進行四則運算,會經過廣播機制對每一個元素進行算術運算

  • 矩陣乘法

    numpy.dot(A,B)

索引

索引操做獲取的是數組的視圖,對索引結果的修改,會影響原數組。

  • 一維數組

    ndarray[index]ndarray[[index_x,index_y,index_z,...]]

    能夠索引一個元素或多個元素

  • 多維數組

    ndarray[row,col]

    索引時指定元素的行和列

切片

切片操做獲取的是數組的視圖,對索引結果的修改,會影響原數組。

  • 一維數組

    ndarray[start:end:step]

    start缺省值爲0,end缺省值爲數組的長度,step是可選的步長

  • 多維數組

    多維數組切片,要指明切片的範圍和切片操做

    • 單行

      ndarray[row,start:end:step]

    • 連續行

      ndarray[row_start:row_end,start:end:step]

    • 不連續行

      ndarray[[row_x,row_y,...],start:end:step]

數組拼接

  • 橫向拼接

    numpy.hstack((A,B))

  • 縱向拼接

    numpy.vstack((A,B))

  • numpy.column_stack or numpy.row_stack()能夠用來處理一維數組的拼接

數組迭代

  • 推薦方法:numpy.apply_along_axis(聚合函數,*,axis,ndarray)

    axis是一個boolean值,0表示按列迭代,1表示按行迭代。

    ndarray表示要處理的數組

  • for ... in ...

結構化數組

結構體元素類型:

bytes b1
int i1,i2,i4,i8
unsigned ints u1,u2,u4,u8
floats f2,f4,f8
complex c8,c16
fixed length string a
numpy.array([...],...,dtype=('type,type1,...'))

或者

numpy.array([...],...,dtype=[('field',type),('field',type),...])

若是不指定字段標題,默認字段名爲f<n>,利用字段名能夠輕鬆的引用矩陣的某列

數據文件讀取

numpy.save(filename,dataArray)會將數組序列化爲.npy二進制文件,反序列化能夠經過numpy.load(filename)

讀取文本文件

numpy.genfromtxt(filename,delimiter=None,names=None)

它接受三個參數:

  1. 存放數據的文件名
  2. 分隔符
  3. 是否含有標題

該函數包含兩層隱式循環:

  1. 第一層循環每次讀取文件的一行
  2. 將每行的多個值分開,再對這些值進行轉化,依次插入所建數組的相應位置。
  3. 對於缺失數據,返回nan
相關文章
相關標籤/搜索