关于python中numpy.argpartition函数的个人理解
2019-01-21 22:26
267 查看
numpy.argpartition函数的理解
在进行knn练习的时候,看到了一段
closest_y = self.y_train[np.argpartition(dists[i],k)[0:k]]的代码,下面是个人对argpartition函数的理解。
首先我们要明白的是argpartition函数输出的是一个索引数组
定义一个乱序的数组
dists= np.array([ 3.0, 2.0, 5.0, 4.0, 7.0, 6.0, 1.0, 0.0])
首先我定义,k = 5,相当于跑步成绩里第k名
这个函数输出结果是,将成绩比第K名好的索引号放在K前面(时间短),差的放在K后面。(无序放置)
k = 5 print(np.argpartition(dists, k)) >> array([1 7 6 0 3 2 5 4])
最后输出排序后的结果
print(dists[np.argpartition(dists, k)]) >> array([2. 0. 1. 3. 4. 5. 6. 7.])
如果只取X个比k名次还高的
X = 4 print(dists[np.argpartition(dists, k)[:X]]) >> array([2. 0. 1. 3.])
其它k和X
k = 6 X = 6 print(np.argpartition(dists, k)) print(dists[np.argpartition(dists, k)]) print(dists[np.argpartition(dists, k)[:X]]) >> array([1 7 6 0 2 3 5 4]) >> array([2. 0. 1. 3. 5. 4. 6. 7.]) >> array([2. 0. 1. 3. 5. 4.])
相关文章推荐
- 关于python锁的一些个人理解
- 关于Python2/3多进程的一些个人理解
- P86页《数据结构与算法 Python语言表达》关于“判断谓词”的个人理解
- 关于property,以及python oop的个人理解
- 关于Python中,re.sub(pattern, repl, string, count=0, flags=0)方法的个人理解
- 关于C的指针,Java/Python的引用,形参与实参个人理解
- C和python关于多个运算符号的区别(个人理解)
- 关于Volatile关键字含义的一些个人理解
- 个人关于python装饰器的白痴理解
- AndroidStudio关于jniLibs文件夹的个人理解
- Python开发:关于Else语句的总体理解
- 关于Condition的个人理解
- 关于观察者模式的 个人理解
- 关于排序的总结和部分实现(个人理解整理版)
- [置顶] 关于反射的个人理解
- Python点滴01——关于Python2.x和3.x的一些个人感受
- GL-关于intercopany 和intracompany 的个人理解
- 关于DataReader的个人理解
- 关于scala的=>作用 个人理解简述
- 关于perl闭包(个人理解)