gpt4 book ai didi

python - np.argsort() 的奇怪/错误输出

转载 作者:行者123 更新时间:2023-12-04 01:49:28 24 4
gpt4 key购买 nike

我在使用 numpy 和 argsort 时,遇到了 argsort 的奇怪 (?) 行为:

>>> array = [[0, 1, 2, 3, 4, 5], 
[444, 4, 8, 3, 1, 10],
[2, 5, 8, 999, 1, 4]]
>>> np.argsort(array, axis=0)

array([[0, 0, 0, 0, 1, 2],
[2, 1, 1, 1, 2, 0],
[1, 2, 2, 2, 0, 1]], dtype=int64)

我很清楚每个列表的前 4 个值 - argsort 正确地完成了工作。但是最后两个值非常困惑,因为它有点错误地对值进行排序。
argsort 的输出不应该是:

array([[0, 0, 0, 0, 2, 1],
[2, 1, 1, 1, 0, 2],
[1, 2, 2, 2, 1, 0]], dtype=int64)

最佳答案

我认为问题在于您认为 argsort 正在输出什么。让我们关注一个更简单的一维示例:

 arr = np.array([5, 10, 4])

np.argsort 的结果将是原始数组中的索引以使元素排序:

[2, 0, 1]

让我们看一下实际排序的值是什么来理解原因:

[
4, # at index 2 in the original array
5, # at index 0 in the original array
10, # at index 1 in the original array
]

您似乎在想象反向操作,其中 argsort 会告诉您每个元素将移动到输出中的哪个索引。您可以通过将 argsort 应用于 argsort 的结果来获取这些索引。

关于python - np.argsort() 的奇怪/错误输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53923914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com