[Python] Numpy學習筆記(一)
阿新 • • 發佈:2019-02-05
最近開始學習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)元素級的真值邏輯運算