学习内容:k-近邻算法
1. shape
shape[0]表示矩阵行数
shape[1]表示矩阵列数
示例如下:
>>> group
array([[1. , 1.1],
[1. , 1. ],
[0. , 0. ],
[0. , 0.1]])
>>> group.shape
(4, 2)
>>> group.shape[0]
4
>>> group.shape[1]
2
2. tile
tile作用是对矩阵进行行和列上的复制
import numpy
a=[1,2]
>>> a
[1, 2]
>>> numpy.tile(a,(3,2))
array([[1, 2, 1, 2],
[1, 2, 1, 2],
[1, 2, 1, 2]])
3.array
(1)对于一个普通矩阵无法直接用**2来实现各元素平方,而使用numpy中的array后,可以直接平方。
>>> a=([1,2,3,4,5])
>>> a
[1, 2, 3, 4, 5]
>>> a**2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for ** or pow(): 'list' and 'int'
>>> a=array([2,3])
>>> a
array([2, 3])
>>> a**5
array([ 32, 243])
>>>
(2)普通的list不能进行代数上的加减,而array可以
>>> a=[1,2]
>>> b=[3,4]
>>> a+b
[1, 2, 3, 4]
>>> a=numpy.array([1,2])
>>> b=numpy.array([2,3])
>>> print a,b
[1 2] [2 3]
>>> print a+b
[3 5]
4. sum
sum(axis=1)压缩行,即每一行元素相加
sum(axis=0)压缩列,即每一列元素相加
>>> d
array([[1, 2, 1, 2, 1, 2, 1, 2, 1, 2],
[1, 2, 1, 2, 1, 2, 1, 2, 1, 2],
[1, 2, 1, 2, 1, 2, 1, 2, 1, 2],
[1, 2, 1, 2, 1, 2, 1, 2, 1, 2]])
>>> print d.sum(axis=1)
[15 15 15 15]
>>> print d.sum(axis=0)
[4 8 4 8 4 8 4 8 4 8]
>>> d.sum(axis=1)
array([15, 15, 15, 15])
>>> d.sum(axis=0)
array([4, 8, 4, 8, 4, 8, 4, 8, 4, 8])
5. argsort
argsort是将x中的数据按从小到大排序,提取其对应的index(索引),然后输出到y,即最后得到的值是表示大小顺序的索引,而不是对应的值。
>>> a=array([-1,5,6,8,3,4,2])
>>> a
array([-1, 5, 6, 8, 3, 4, 2])
>>> y=a.argsort()
>>> y
array([0, 6, 4, 5, 1, 2, 3])
>>> y[0]
0
>>> y[5]
2
6.strip
移除字符串头尾指定的字符(默认为空格)
http://www.runoob.com/python/att-string-strip.html
7.split
切分数据
http://www.runoob.com/python/att-string-split.html
8.matplotlib
由于在使用pip安装matplotlib库时出现了一系列错误,所以下载了anaconda,从而获得了matplotlib库。
https://blog.csdn.net/lilianforever/article/details/48786795
9.max和min
在归一化过程中使用到了这两个函数,这两个函数与axis相似,
min(0)是压缩列,得到每列的最小值
max(0)是压缩行,得到每行的最小值
>>> a=array([[2, 3, 1.5], [5,-4, 0.1]])
>>> a
array([[ 2. , 3. , 1.5],
[ 5. , -4. , 0.1]])
>>> a.min(0)
array([ 2. , -4. , 0.1])
>>> b=a.min(1)
>>> b
array([ 1.5, -4. ])
10.raw_input
https://blog.csdn.net/salove_y/article/details/78823838
raw_input输入文本行命令输入的都是字符串
小结:在第二章中,首先学习了kNN的基本模型,在第一小节学习了字典,以及排序函数;在第二小节学习了如何将普通文本处理为方便python操作的格式,以及使用Matplotlib画图。
11.readline和readlines
https://zhidao.baidu.com/question/1765071014605670780.html
readline和readlines都是用来读取文件内容,readline()每次读取一行,当前位置移到下一行;readlines()读取整个文件所有行,保存在一个列表(list)变量中,每行作为一个元素;
>>> fr=open('0_13.txt')
>>> lineStr=fr.readline()
>>> lineStr
'00000000000000011100000000000000\r\n'
>>>
KeyboardInterrupt
>>> lineStr=fr.readline()
>>> lineStr
'00000000000001111110000000000000\r\n'
>>>
12.listdir
os模块中的listdir函数
http://www.runoob.com/python/os-listdir.html
13.append
在列表末尾添加新的对象
http://www.runoob.com/python/att-list-append.html