patition可以对浮点型进行排序吗?排出来结果好像不对

来源:3-9 Numpy中的arg运算

闪闪一年

2018-12-20

图片描述
为了方便查了结果,用浮点型创建的。L[6]=6.9,运行后,6.9的右侧出现了L[4]=2.5。这是什么原因,想了半天没头绪,求教波波老师。

写回答

1回答

liuyubobobo

2018-12-20

可能是我的课程中举的例子不够好。np.partition的kth这个参数也确实比较容易让人confuse。


kth指,排序后的kth个元素。也就是,partition做的事情是,把整个数组排序后的第kth个元素放在正确的位置,其他元素分布在这个元素两侧。


比如你的例子中,kth传6,代表整个数组第6大的元素(0-based)放在正确的位置,即9.2放在了正确的位置。然后,其他元素根据自己的大小,都放在9.2两侧。


如果你想以6.9为基准的话,需要调用np.partition(L, 4),因为6.9是整个数组中排名第4的元素(0-based)。


这确实是一个糟糕的设计。不过不用担心,印象里课程后续是不会使用partition的:)


继续加油!:)

0
1
闪闪一年
非常感谢!原来是这个意思,我自己开始理解也没到位。再一次感谢老师!
2018-12-20
共1条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5860 学习 · 2451 问题

查看课程