大家好。
我有一个像这样的numpy数组:
array([16, 17, 1, 3, 8, 10, 2, 19, 14, 18, 15, 6, 11, 13, 5, 4, 9, 0, 7, 12])
我需要首先获取每个元素的索引以及值,然后对生成的元素列表进行排序,以便得到如下内容:
[19: 7, 18: 9, 17: 1, 16: 0, 15: 10 ...]
也就是说,在最终列表中,我必须从第一个列表中按递减值进行排序,但同时我需要添加每个元素的基本列表的索引。你需要以最快的方式完成它。我有一个想法如何做到这一点,但不知何故很难。也许 numpy 有更快的方法?
如果您想保持在限制范围内
numpy并使用它的速度,那么您可以这样做:结论:
其中
numpy有数组索引的排序。这里我先得到这样一个排序,把它翻过来让一开始就有最大值,那么就很容易通过索引从数组中取值了。好吧,如果有必要,将索引和值组合到一个数组中。排序索引numpy应该相当快。在这种情况下,使用 Pandas 会更容易:
1.000.000 个元素的速度测量:
从作业来看,你最终应该得到一本字典。目前尚不清楚为什么 numpy 在这里,但如果你需要它,那么你可以这样做:
资源:
更新(如果值可能重复)
在这种情况下,您需要使用元组或列表:
资源:
尚不完全清楚与它有什么关系
numpy,以及输出需要什么结构。这是一个用于更改的元组列表,因为我根本看不出对字典进行排序有多大意义:结论: