1. 程式人生 > >[Python] Numpy學習筆記(一)

[Python] Numpy學習筆記(一)

最近開始學習numpy和pandas的一些東西,順手做了些筆記,跟大家分享,也方便我以後查閱

Ndarray: 一種多維陣列物件

array.shape                         array的規格
array.ndim      
array.dtype                         array的資料規格
numpy.zeros(dim1,dim2)              建立dim1*dim2的零矩陣
numpy.arange
numpy.eye(n) /numpy.identity(n)     建立n*n單位矩陣
numpy.array([…data…], dtype=float64 )
array
.astype(numpy.float64) 更換矩陣的資料形式 array.astype(float) 更換矩陣的資料形式 array * array 矩陣點乘 array[a:b] 切片 array.copy() 得到ndarray的副本,而不是檢視 array [a] [b]=array [ a, b ] 兩者等價 name=np.array(['bob','joe','will']) res=name==’bob’ res= array
([ True, False, False], dtype=bool) data[True,False,…..] 索引,只索取為True的部分,去掉False部分 通過布林型索引選取陣列中的資料,將總是建立資料的副本。 data[ [4,3,0,6] ] 索引,將第4,3,0,6行摘取出來,組成新陣列 data[-1]=data[data.__len__()-1] numpy.reshape(a,b) 將a*b的一維陣列排列為a*b的形式 array([a,b,c,d],[d,e,f,g]) 返回一維陣列,分別為[a,d],[b,e],[c,f],[d,g] array
[ [a,b,c,d] ][:,[e,f,g,h] ]=array[ numpy.ix_( [a,b,c,d],[e,f,g,h] ) ] array.T array的轉置 numpy.random.randn(a,b) 生成a*b的隨機陣列 numpy.dot(matrix_1,matrix_2) 矩陣乘法 array.transpose( (1,0,2,etc.) ) 對於高維陣列,轉置需要一個由軸編號組成的元組

ufunc:通用函式,簡單函式的向量化包裝

一元ufunc
numpy.sqrt(array)                   平方根函式   
numpy.exp(array)                    e^array[i]的陣列
numpy.abs/fabs(array)               計算絕對值
numpy.square(array)                 計算各元素的平方 等於array**2
numpy.log/log10/log2(array)         計算各元素的各種對數
numpy.sign(array)                   計算各元素正負號
numpy.isnan(array)                  計算各元素是否為NaN
numpy.cos/cosh/sin/sinh/tan/tanh(array) 三角函式
numpy.modf(array)                   將array中值得整數和小數分離,作兩個陣列返回

二元ufunc
numpy.add(array1,array2)            元素級加法
numpy.subtract(array1,array2)       元素級減法
numpy.multiply(array1,array2)       元素級乘法
numpy.divide(array1,array2)         元素級除法 array1./array2
numpy.power(array1,array2)          元素級指數 array1.^array2
numpy.maximum/minimum(array1,aray2) 元素級最大值
numpy.fmax/fmin(array1,array2)      元素級最大值,忽略NaN
numpy.mod(array1,array2)            元素級求模
numpy.copysign(array1,array2)       將第二個陣列中值得符號複製給第一個陣列中值
numpy.greater/greater_equal/less/less_equal/equal/not_equal (array1,array2)
元素級比較運算,產生布爾陣列
numpy.logical_end/logical_or/logic_xor(array1,array2)元素級的真值邏輯運算