標籤:

Python 數據分析隨筆 - numpy

python數據類型

  1. 基礎類型:numeric,boolean,string
  2. 列表(list)
  3. 字典(dict)
  4. 集合(set)
  5. 元組(tuple)

numpy

numpy是作為python原有數組(列表)的增強版本而存在的,包括:

  • 數組的類型泛化:支持更加多的類型
  • 多維數組支持:並支持在此基礎上的各種操作
  • 高級索引和切片:複雜的整數索引和多維切片
  • 數組廣播和迭代器
  • 數組轉化:變形和分割
  • 數組統計操作和排序
  • 數組矩陣操作支持

numpy的數組:是對python數組的包裝,包括兩個關鍵的數據類型:

  • ndarry:多維數組
  • dtype:數組元素的類型

ndarry

ndarry創建可以通過:

  • numpy.array對於python數組的包裝,可以設置dtype,copy,order,ndim參數
    • np.array([1,2,3,4])
    • np.array([[1,2,3,4], [5,6,7,8]])
    • np.array( [ [1,2], [3,4] ], dtype=complex )
    • np.array([1,2,3,4],ndim=2)
  • numpy提供的ndarry構建函數
    • ones/zeros/full/eye
    • arang/linespace/logspace
    • frombuffer/fromiter

ndarry包含如下的fields

  • ndarray.ndim:數組的維度
  • ndarray.shape:(n,m)
  • ndarray.size:n×m
  • ndarray.dtype:元素類型
  • ndarray.itemsize:元素所佔位元組數,ndarry中的每個元素大小是一致的
  • ndarray.data:ndarry內容的buffer

dtype

dtype定義了ndarry中的元素類型,基礎的元素包括:

  • bool_:b
  • int_/intc/intp/int16/int32/int64:i
  • /uint8/uint16/uint32/uint64:u
  • floag_/float16/float32/float64:f
  • complex_/complex64/complex128:c
  • string(定長):s
  • timedelta:m
  • datatime:M
  • python object: O
  • unicode: U
  • void:V
  • Object:其他自定義的都是object類型

在此基礎上,可以自定義dtype類型,詳細參考:arrays.dtypes

numpy切片

numpy有兩種方式定義切片

  • 定義slice對象:slice(2,7,2)
  • 數組直接切片a[2:7:2)

這兩者是等價的,意思是對從元素2-7,每隔2個做一個切片

numpy也支持類似matlab的行和列切片

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

  • a[1:] : 第二行 -> end的切片 = [ [3,4,5], [4,5,6] ]
  • a[..., 1] : 第2列的切片 = [2, 4, 5]
  • a[1, ...] : 第2行的切片 = [3, 4, 5]
  • a[..., 1:] : 第2列->end的切片[ [2, 3], [4, 5], [5, 6] ]

numpy統計函數

numpy的統計函數都是可以針對某個軸(axis)進行的

  • ptp:值範圍,(最小 - 最大)
  • percentile:計算滿足百分比的值
  • median:中位數
  • mean:平均值
  • std:標準差
  • var:方差
  • sum:和
  • average:加權平均值,傳入另外一個數組作為加權值
  • amin/amax:最小最大值

numpy線性代數

dot:內積(點積)

vdot:對數組展開後進行內積(點積)

inner:內積(點積)

matmul:矩陣乘法

linalg.det:行列式

linalg.solve:線性方程的解

linalg.inv:求逆矩陣


推薦閱讀:

ImagePy教程 —— 擴展功能
ImagePy教程 —— 直方圖調整
如何用python numpy產生一個正態分布隨機數的向量或者矩陣?
數組數據類型轉換及算術運算
ImagePy教程 —— 主界面

TAG:numpy |