python库-numpy

来源:互联网 发布:java 打印byte数组 编辑:程序博客网 时间:2024/06/10 11:08

kNN算法

一、在自学kNN算法时,遇到了tile函数,现在总结一下该函数用法:

1、np.tile(A,x)->将A一维x次重复输出。

2、np.tile(A,(y,x))->将Ay维x次重复输出

eg:

A = array ([1,2],[3,4])

np.tile(A,2) = ([1,2,1,2],[3,4,3,4])

np.tile(A,(2,3)=([1,2,1,2,1,2],[3,4,3,4,3,4]

                         [1,2,1,2,1,2],[3,4,3,4,3,4])

可以看出tile(A,2)=tile(A,(1,2))

二、A.shape shape数组存储矩阵A的行和列。

shape[0]存行数、shape[1]存列数

三、np.sum(A,axis)

axis=0 ->求每列之和,存入一维数组

axis=1->求每行之和,存入一维数组

四、A.argsort(A,axis) 排序 数组存储索引

A->升序

-A->降序

axis=0 对列 axis=1 对行

五、A.get(key,default),查找key,存在则返回value,如果不存在则返回default值

六、sorted函数

这个函数应该单独开一篇新的博客,但是今天时间有限,先放在这里,以后会重写。

sorted(A)和A.sort()最大的区别在于sort会改变A,而sorted不改变A而生成新的容器。

这里要引入一个operator.itemgetter(num)函数,用于表示获取对象的哪一维的数据,而且值得注意的是,itemgetter函数不是获取值而是定义了一个新函数:

eg:

A=[1,2,3]

b=operator.itemgetter(2)

b(A)=3;

c=operator.itemgetter(1,2)

c(A)=(2,3)

sorted(iterable,cmp,key,reverse)

参数iterable可以是list或者iterator(迭代器),Python中的获取迭代器:A.iteritems();迭代器:对于不同的容器,遍历手段肯定不一样,迭代器就是让我们有一种统一的手段->面向迭代器编程。
cmp是带两个参数的比较函数;
key 是带一个参数的函数;
reverse为False(升序)或者True(降序);

举例说明
(1)用cmp函数排序

>>> list1 = [('david', 90), ('mary',90), ('sara',80),('lily',95)]>>> sorted(list1,cmp = lambda x,y: cmp(x[0],y[0]))[('david', 90), ('lily', 95), ('mary', 90), ('sara', 80)]>>> sorted(list1,cmp = lambda x,y: cmp(x[1],y[1]))[('sara', 80), ('david', 90), ('mary', 90), ('lily', 95)]

(2)用key函数排序

>>> list1 = [('david', 90), ('mary',90), ('sara',80),('lily',95)]>>> sorted(list1,key = lambda list1: list1[0])[('david', 90), ('lily', 95), ('mary', 90), ('sara', 80)]>>> sorted(list1,key = lambda list1: list1[1])[('sara', 80), ('david', 90), ('mary', 90), ('lily', 95)]

(3)用reverse排序

>>> sorted(list1,reverse = True)[('sara', 80), ('mary', 90), ('lily', 95), ('david', 90)]

(4)用operator.itemgetter函数排序

>>> from operator import itemgetter>>> sorted(list1, key=itemgetter(1))[('sara', 80), ('david', 90), ('mary', 90), ('lily', 95)]>>> sorted(list1, key=itemgetter(0))[('david', 90), ('lily', 95), ('mary', 90), ('sara', 80)]


原创粉丝点击