CS231n_homework1_KNN笔记

感谢以下提到的链接作者给予的帮助!

目录

感谢一下提到的链接作者给予的帮助!

np.random.choice()函数

numpy.flatnonzero()函数

enumerate() 函数

shape()函数

numpy的reshape()函数(https://blog.csdn.net/zhanggonglalala/article/details/79356653)

xrange()函数、arange()函数和range()函数(https://blog.csdn.net/qianwenhong/article/details/41414809;http://www.nowamagic.net/academy/detail/1302446)

array_split()函数

bincount()函数(https://blog.csdn.net/xlinsist/article/details/51346523)

argsort()函数(https://blog.csdn.net/maoersong/article/details/21875705)

sum()函数(https://www.cnblogs.com/yyxayz/p/4033736.html)

multiply()函数、dot()函数(https://blog.csdn.net/itnerd/article/details/83444867)

一种给函数计时的方法

关于不使用循环做欧氏距离的计算(https://blog.csdn.net/zhyh1435589631/article/details/54236643)


np.random.choice()函数

np.random.choice(a, size=None, replace=True, p=None)

从一维array a 或 int a 中,以概率p随机选取大小为size的数据,replace表示是否重用元素,即抽取出来的数据是否放回原数组中,默认为true(抽取出来的数据有重复)

numpy.flatnonzero()函数

d=np.array([1,2,3,4,4,3,5,3,6])

x=numpy.flatnonzero(d==3)

print(x)

输出:

[2 5 7]

对于数组d,返回了其中值为3的元素的位置。

enumerate() 函数

enumerate(sequence, [start=0])

sequence -- 一个序列、迭代器或其他支持迭代对象,start -- 下标起始位置,返回的是对象。

seq = ['lrr', 'lxw', 'xca']
for i, element in enumerate(seq):
  print i, element

 
输出结果:
0 lrr
1 lxw
2 xca

shape()函数

e.shape[0]只读取e的第一维长度即多少行,shape[1]是第二维的长度即多少列。

numpy的reshape()函数(https://blog.csdn.net/zhanggonglalala/article/details/79356653

numpy.reshape(a,newshape,order='c'):其中a为待改变格式的数组,newshape是将要变成的形状,order=‘A’ OR 'F' OR 'C',其中为C时是按照行读和写,F时按照列读和写,A时若数据是以类Fortan的方式进行存储(在内存中)的时候,就按照F读取否则按照C读取。

xrange()函数、arange()函数和range()函数(https://blog.csdn.net/qianwenhong/article/details/41414809;http://www.nowamagic.net/academy/detail/1302446

xrange做循环的性能比range好,尤其是返回很大的时候。尽量用xrange吧,除非你是要返回一个列表

>>>a = xrange(0,100) 
>>>print type(a) 
>>>print a 
>>>print a[0], a[1] 

<type 'xrange'>
xrange(100)
0 1

arange函数生成的是array,而range函数生成的是[*****]。

a[:K]表示从第0个到第k个;a[1:]表示从第1个到最后一个

linalg.norm()求范数

array_split()函数

相比np.split(),split只能用来均等划分,而array_split可以不均等划分。

x = np.arange(7.0)

np.array_split(x, 3)

输出:[array([ 0., 1., 2.]), array([ 3., 4.]), array([ 5., 6.])]

>>> xrange(5)
xrange(5)
>>> list(xrange(5))
[0, 1, 2, 3, 4]
>>> xrange(1,5)
xrange(1, 5)
>>> list(xrange(1,5))
[1, 2, 3, 4]
>>> xrange(0,6,2)
xrange(0, 6, 2)
>>> list(xrange(0,6,2))
[0, 2, 4]

bincount()函数(https://blog.csdn.net/xlinsist/article/details/51346523

一种元素计数的方法,纯元素计数和带权值两种情况。详情见链接。

argsort()函数(https://blog.csdn.net/maoersong/article/details/21875705

返回的是数组从小到大的索引值,参数设置:axis=1为按照行排序,axis=0为按照列排序。order可设置为升序或是降序,降序为-1。

sum()函数(https://www.cnblogs.com/yyxayz/p/4033736.html

其中参数axis=1表示一行元素进行相加。axis=0表示纵向,列相加

multiply()函数、dot()函数(https://blog.csdn.net/itnerd/article/details/83444867

一种给函数计时的方法

def time_function(f, *args):
    """
    Call a function f with args and return the time (in seconds) that it took to execute.
    """
    import time
    tic = time.time()
    f(*args)
    toc = time.time()
    return toc - tic

关于不使用循环做欧氏距离的计算(https://blog.csdn.net/zhyh1435589631/article/details/54236643

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值