numpy中的tile函式
阿新 • • 發佈:2019-02-10
最近在機器學習實戰中學習knn分類演算法的過程中用到了tile函式,在此記錄下來此函式的用法。
函式原型:numpy.tile(A,reps) #簡單理解是此函式將A進行重複輸出其中A和reps都是array_like的引數,A可以是:array,list,tuple,dict,matrix以及基本資料型別int,string,float以及bool型別,reps的型別可以是tuple,list,dict,array,int,bool,但不可以是float,string,matrix型別。
計較常用的形式有兩種,是將A簡單進行一維重複輸出,和將A進行二維重複後輸出。
A為一維陣列
A為二維陣列>>> import numpy >>> numpy.tile([0,0],5)#在列方向上重複[0,0]5次,預設行1次 一維 array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) >>> numpy.tile([0,0],(1,1))#在列方向上重複[0,0]1次,行1次 二維 array([[0, 0]]) >>> numpy.tile([0,0],(2,1))#在列方向上重複[0,0]1次,行2次 二維 array([[0, 0], [0, 0]]) >>> numpy.tile([0,0],(1,3))#在列方向上重複[0,0]3次,行1次 二維 array([[0, 0, 0, 0, 0, 0]]) >>> numpy.tile([0,0],(2,3))#在列方向上重複[0,0]3次,行2次 二維 array([[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]])
自己的理解:先進行列重複,再整體進行重複>>> numpy.tile([[1,2,3],[4,5,5]],3) #一維 array([[1, 2, 3, 1, 2, 3, 1, 2, 3], [4, 5, 5, 4, 5, 5, 4, 5, 5]]) >>> numpy.tile([[1,2,3],[4,5,5]],[2,3]) #二維 array([[1, 2, 3, 1, 2, 3, 1, 2, 3], [4, 5, 5, 4, 5, 5, 4, 5, 5], [1, 2, 3, 1, 2, 3, 1, 2, 3], [4, 5, 5, 4, 5, 5, 4, 5, 5]])