《机器学习实战》第二章学习笔记

学习内容: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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值