From d3e6a6624b3206df62dd2e6be58afdea43e29beb Mon Sep 17 00:00:00 2001 From: Chen ZHANG Date: Sat, 18 Jan 2014 02:21:52 +0800 Subject: [PATCH] use numpy broadcasting instead of function 'tile' --- Ch02/kNN.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Ch02/kNN.py b/Ch02/kNN.py index dc69437c..926357c3 100644 --- a/Ch02/kNN.py +++ b/Ch02/kNN.py @@ -17,7 +17,7 @@ def classify0(inX, dataSet, labels, k): dataSetSize = dataSet.shape[0] - diffMat = tile(inX, (dataSetSize,1)) - dataSet + diffMat = asarray(inX) - dataSet sqDiffMat = diffMat**2 sqDistances = sqDiffMat.sum(axis=1) distances = sqDistances**0.5 @@ -60,8 +60,8 @@ def autoNorm(dataSet): ranges = maxVals - minVals normDataSet = zeros(shape(dataSet)) m = dataSet.shape[0] - normDataSet = dataSet - tile(minVals, (m,1)) - normDataSet = normDataSet/tile(ranges, (m,1)) #element wise divide + normDataSet = dataSet - minVals + normDataSet = normDataSet/ranges #element wise divide return normDataSet, ranges, minVals def datingClassTest():