【发布时间】:2011-04-22 00:39:07
【问题描述】:
在 Numpy 中,如何创建一个可用于按排序顺序返回源数组值的索引数组?例如:
Source:
[[4 2 6 7]
[1 4 8 9]
[3 1 0 3]]
Indices:
[10 4 9 1 8 11 0 5 2 3 6 7]
【问题讨论】:
在 Numpy 中,如何创建一个可用于按排序顺序返回源数组值的索引数组?例如:
Source:
[[4 2 6 7]
[1 4 8 9]
[3 1 0 3]]
Indices:
[10 4 9 1 8 11 0 5 2 3 6 7]
【问题讨论】:
看看numpy.argsort - 它会返回对你的数组进行排序的索引。您还可以指定要排序的轴。试试:
a = numpy.asarray([[4, 2, 6, 7], [1, 4, 8, 9], [3, 1, 0, 3]])
numpy.argsort(a.flat)
>> array([10, 4, 9, 1, 8, 11, 0, 5, 2, 3, 6, 7])
【讨论】:
答案在手册中:
src = [[ ... ]]
ravel_src = np.ravel(src)
indices = np.argsort(ra)
【讨论】: