Python 數據分析隨筆 - numpy
02-10
python數據類型
- 基礎類型:numeric,boolean,string
- 列表(list)
- 字典(dict)
- 集合(set)
- 元組(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 |