最简洁得K阶临近算法,就是计算待预测样本与训练样本直接得差值(可以是绝对值之和,或者各种属性绝对值得平方和),

然后求差值最小得前K个,查看这K个值对应得训练样本得分类分别是啥,统计数量取数量最多得那一个分类为预测值。

  import numpy as np

  numpy 之tile(data,(m,n)) 函数    data可以是list ,array,matrix(介个的返回值是matrix,就是矩阵)

  data1 = [1,2,3]  

list类型

data2 = np.tile(data1,(3,1))#  np.tile(listDat,(m,n))  可以将listDat视为单独元素,复制成 m行n列 的 array

data2效果为:

[[1 2 3]

 [1 2 3]

 [1 2 3]]

numpy 之array型数据的 平方,列求和,行求和

平方

      data1 = np.array([[1,3,4],[2,1,7],[5,3,2]])

      data3 = data1**2  #会将各个元素求平方,返回值的size或者shape跟求平方前一样

      data3为:
      [ 1  9 16]
      [ 4  1 49]
     [25  9  4]]


   data.sum(n)# n=1,0    n等于0时,将分别将各列的值进行相加, 等于1时就是各行值相加,总是记不准,每次都是写个简单例子,看实际效果

  data4 = data1.sum(0)

  data4 为:

  [ 8  7 13]

  <class 'numpy.ndarray'>


  data5 = data1.sum(1)

  data5 为:
  [ 8 10 10]
  <class 'numpy.ndarray'>


  numpy   array之排序 argsort()

  data = np.array([9,8,7,6,5,4,3,2,1])

  data1 = data.argsort()  #将原来array数组从小到大排序, 返回的array数组时原数组的索引值

  data1 为:
  [8 7 6 5 4 3 2 1 0]                  #原数组索引值为8的最小 ,也就是 data[8]的值最小
  <class 'numpy.ndarray'>

sorted(data,key= ,reverse=)

对dict对象进行排序

这个不好解释,目前只能意会或者叫硬记住

得到各个分类及其数量一个dict,譬如: dic ={'x':3,'y':2,'z':4}

需要对dic里面各个元素按值进行排序(降序),并取出排序后第一个类型

sortedDic = sorted(dic.iterms(),key=operator.itemgetter(1),reverse=True)

dic.iterm()

我理解为字典的键值对之类的

ict_items([('x', 3), ('y', 2), ('z', 4)])

key 这块我解释不到,就是以上面类似元组的元素中第二个值进行比较

reverse 排序方法,默认是Flase 按key中选择值进行升序排列

  返回值是个 list 
  我们这里为
  [('z', 4), ('x', 3), ('y', 2)]  #是一个元组的 list