patition可以对浮点型进行排序吗?排出来结果好像不对
来源:3-9 Numpy中的arg运算
闪闪一年
2018-12-20
为了方便查了结果,用浮点型创建的。L[6]=6.9,运行后,6.9的右侧出现了L[4]=2.5。这是什么原因,想了半天没头绪,求教波波老师。
写回答
1回答
-
可能是我的课程中举的例子不够好。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的:)
继续加油!:)
012018-12-20
相似问题