您的位置:首页 > 编程语言 > Python开发

【python实战】k-近邻算法(1)

2017-08-23 10:08 190 查看






------------------------------------------------------------------------------------


[1]numpy函数:shape用法  size=dataset.shape[0] 

shape函数是numpy.core.fromnumeric中的函数,它的功能是读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度。它的输入参数可以使一个整数表示维度,也可以是一个矩阵。其他几种用法如下:



[2]numpy函数:tile函数用法   tile(inX,(datasize,1))-dataset

tile函数位于python模块 numpy.lib.shape_base中,他的功能是重复某个数组。比如tile(A,n),功能是将数组A重复n次,构成一个新的数组,具体的例子:【 例子来源:http://blog.sina.com.cn/s/blog_6bd0612b0101cr3u.html】

>>> a=[[1,2],[2,3]]

>>> tile(a,2)

array([[1, 2, 1, 2],

       [2, 3, 2, 3]])

>>> tile(a,[1,2])             #【1,2】2看作对数组a的一维进行copy,2对a的二维进行copy
array([[1, 2, 1, 2],
       [2, 3, 2, 3]])

>>> tile(a,[2,2])
array([[1, 2, 1, 2],
       [2, 3, 2, 3],
       [1, 2, 1, 2],
       [2, 3, 2, 3]]


[3]numpy函数:sum函数用法 sqDiffMat.sum(axis=1)

sum(sequence[,start])->value                                            【参考网址http://blog.csdn.net/u012005313/article/details/49153261】
函数功能:返回一个数字序列(非字符串)的和,并加上参数'start'值(默认0,如果序列空则返回start的值(如果start为负,则出错)

.sum()函数是模块numpy的一个函数:
默认axis为None,表示将所有元素的值相加,对于二维数组,axis=1表示按行相加
, axis=0表示按列相加


[4]numpy函数:argsort函数用法

http://blog.csdn.net/maoersong/article/details/21875705

#argsort函数返回的是数组值从小到大的索引值  #对开方结果建立索引
>>> x = np.array([3, 1, 2])
    >>> np.argsort(x)
    array([1, 2, 0])

>>>
x = np.array([[0, 3], [2, 2]]) 
    >>> np.argsort(x, axis=0) #按列排序
    array([[0, 1],
              [1, 0]])
    >>> np.argsort(x, axis=1) #按行排序
    array([[0, 1],
           [0, 1]])


[5]python函数:get函数用法

字典dict.get(key,
default=None)返回指定键的值,如果值不在字典中返回default值


[6]py3: items()函数


Python
字典(Dictionary) items() 函数以列表返回可遍历的(键, 值) 元组数组。将字典分解为元祖列表,

py2:iteritems()   【http://www.sjsjw.com/kf_code/article/34_20855_10234.asp】


[7]sorted()


operator.itemgetter(1) 函数,即取第二个元素(即出现次数)的次序对元祖进行来排序。逆序:从大到小。

二、k-近邻算法改进约会网站的配对效果

【1】zeros():该函数功能是创建给定类型的矩阵,并初始化为0

#一维数组  

zeros(3)  

#二维数组  

zeros((2,3))
 #或  zeros([2,3]) 
【2】line.strip():截取掉所有的回车字符,然后使用tab字符\t将上一步得到的整行数据分割成一个元素列表

或|for
line in file:
者| line.strip().split()这样就把每行的每个字符一个个分开,变成一个list。

【3】int(listFormLine[-1]);python中可以使用索引值-1表示列表中的最后一列元素。此外这里我们必须明确的通知解释器,告诉它列表中存储的元素值为整型,否则python语言会将这些元素当做字符串处理。
执行:
import matplotlib#matplotlib 是python最著名的绘图库

import matplotlib.pyplot as plt #快速绘图pyplot模块虽然用法简单,但不适合在较大的应用程序中使用

fig =plt.figure()#若绘制多幅图表,可以给figure()传递一个整数参数指定Figure对象的序号

ax =fig.add_subplot(111) #画子图

ax.scatter(datingDataMat[:,1],datingDataMat[:,2])
#散点图使用矩阵的第二列(游戏耗费时间)三列数据(消耗冰淇淋)

plt.show()
成功

【matplotlib:http://blog.sina.com.cn/s/blog_6252a9bf0101b257.html】
【http://blog.csdn.net/you_are_my_dream/article/details/53439518】
待续
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息