cs231n assignment1(KNN)用到的函数:enumerate()/flatnonzero()/argsort()/array_split()
来源:互联网 发布:数控机床编程入门斯沃 编辑:程序博客网 时间:2024/05/16 15:22
cs231n课程assignment1,KNN部分学习时用到的函数汇总记录
1. enumerate()函数
是python的内置枚举函数
对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
enumerate多用于在for循环中得到计数
使用:
list1 = ["这", "是", "一个", "测试"]for index, item in enumerate(list1): print index, item
>>>0 这1 是2 一个3 测试
2.flatnonzero()
该函数输入一个矩阵,返回扁平化后矩阵中非零元素的位置(index)
这是官方文档给出的用法,非常正规,输入一个矩阵,返回了其中非零元素的位置
>>> x = np.arange(-2, 3)
>>> xarray([-2, -1, 0, 1, 2])>>> np.flatnonzero(x)array([0, 1, 3, 4])
特别地,用来返回某个特定元素的位置
对向量元素的判断d==3返回了一个和向量等长的由0/1组成的矩阵,然后调用函数,返回的位置,就是对应要找的元素的位置。
d = np.array([1,2,3,4,4,3,5,3,6])find_d = np.flatnonzero(d == 3)print find_d
[2,5,7]
3. argsort()函数
argsort函数返回的是数组值从小到大的索引值
>>> x = np.array([3, 1, 2])>>> np.argsort(x) #按升序排列array([1, 2, 0])>>> np.argsort(-x) #按降序排列array([0, 2, 1])
>>> x[np.argsort(x)] #通过索引值排序后的数组array([1, 2, 3])>>> x[np.argsort(-x)]array([3, 2, 1])
另一种方式实现按降序排序:>>> a = x[np.argsort(x)]>>> aarray([1, 2, 3])>>> a[::-1]array([3, 2, 1])
sort()改变原列表
>>> a = [1,2,1,4,3,5]>>> a.sort()>>> a[1, 1, 2, 3, 4, 5]
>>> a = [1,2,1,4,3,5]>>> sorted(a)[1, 1, 2, 3, 4, 5]>>> a[1, 2, 1, 4, 3, 5]
4. array_split()函数
将列表拆分为几份
首先是spilt()使用:
>>> x = np.arange(9.0)>>> np.split(x, 3)[array([ 0., 1., 2.]), array([ 3., 4., 5.]), array([ 6., 7., 8.])]
>>> x = np.arange(8.0)>>> np.split(x, [3, 5, 6, 10])[array([ 0., 1., 2.]), array([ 3., 4.]), array([ 5.]), array([ 6., 7.]), array([], dtype=float64)]
功能与split一样,唯一的区别是 array_split() 允许不均等地拆分原列表:
>>> x = np.arange(8.0)>>> np.array_split(x, 3)[array([ 0., 1., 2.]), array([ 3., 4., 5.]), array([ 6., 7.])]
具体题目过程可参考:http://blog.csdn.net/zhyh1435589631/article/details/54236643
阅读全文
1 0
- cs231n assignment1(KNN)用到的函数:enumerate()/flatnonzero()/argsort()/array_split()
- cs231n课程作业assignment1(KNN)
- cs231n:assignment1:KNN解答
- CS231n-assignment1-KNN篇
- cs231n assignment1:KNN
- CS231n——Assignment1-KNN
- CS231n----assignment1 -notes for KNN
- CS231n-assignment1(作业1)-knn
- CS231n - CNN for Visual Recognition Assignment1 ---- KNN
- [CS231n@Stanford] Assignment1-Q1 (python) KNN实现
- 【实验小结】cs231n assignment1 knn 部分
- KNN最近邻分类算法 + cs231n assignment1
- 关于CS231N-Assignment1-KNN中no-loop矩阵乘法代码的讲解
- CS231n+assignment1(作业一)
- 20161106#cs231n#1.最近邻分类器 Assignment1-KNN
- cs231n assignment1
- CS231n-assignment1
- argsort()函数的总结
- Java源码之String
- MFC在不同的类窗体之间传递消息
- vc创建注册表协议,使用协议启动进程
- 调用系统相机相册
- this指针详解
- cs231n assignment1(KNN)用到的函数:enumerate()/flatnonzero()/argsort()/array_split()
- YYGraft v1.0.1 发布,基于 HTM5 的JS在线涂鸦工具
- Zero To One
- 解决 log4j.xml 问题 http//jakarta.apache.org/log4j/ uri is not registered 的方法
- ConcurrentHashMap 的实现原理
- 字体大小
- Java实现复制黏贴
- Java设计模式之装饰器模式
- Redhat Linux x64 升级SSH到OpenSSH_7.4p1