如何有效地获取具有唯一值的索引列表?

亚里夫

是否有内置方法可以帮助我有效地实现以下目标:给定一个数组,我需要一个数组列表,每个数组都具有指向该数组不同唯一值的索引?

如果f是所需功能,

b = f(a)

u, idxs = unique(a)

然后

b[i] == where(idxs==i)[0]

我知道pandas.Series.groupby()可以做到这一点,但是当存在超过10 ^ 5个唯一整数时,创建字典可能并不高效。

海梅

如果您的numpy> = 1.9,则可以执行以下操作:

>>> a = np.random.randint(5, size=10)
>>> a
array([0, 2, 4, 4, 2, 4, 4, 3, 2, 1])
>>> unq, unq_inv, unq_cnt = np.unique(a, return_inverse=True, return_counts=True)
>>> np.split(np.argsort(unq_inv), np.cumsum(unq_cnt[:-1]))
[array([0]), array([9]), array([1, 4, 8]), array([7]), array([2, 3, 5, 6])]
>>> unq
array([0, 1, 2, 3, 4])

在早期版本中,您可以额外进行计数:

>>> unq_cnt = np.bincount(unq_inv)

另外,如果您要确保对每个值的索引进行排序,我认为您将需要使用稳定的排序,例如 np.argsort(unq_inv, kind='mergesort')


考虑一下您似乎想要的东西,我认为这是最大限度地减少了对昂贵函数的调用,我认为您无需按照自己的要求去做。假设您的函数是平方,则可以简单地执行以下操作:

>>> unq, unq_inv = np.unique(a, return_inverse=True)
>>> f_unq = unq**2
>>> f_a = f_unq[unq_inv]
>>> a
array([0, 2, 4, 4, 2, 4, 4, 3, 2, 1])
>>> f_a
array([ 0,  4, 16, 16,  4, 16, 16,  9,  4,  1])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过两个属性有效地获取唯一的较早的行?

来自分类Dev

如何有效地获取具有NaN值的数据帧的相关矩阵(具有p值)?

来自分类Dev

如何有效地获取具有NaN值的数据帧的相关矩阵(具有p值)?

来自分类Dev

如何处理“仅对具有唯一值的索引对象有效的索引”

来自分类Dev

如何有效地生成一组具有预定义分布的唯一随机数?

来自分类Dev

有效地确定大型排序的numpy数组是否只有唯一值

来自分类Dev

有效地在双向链接列表中搜索具有指针约束的值?

来自分类Dev

如何有效地检查第一个具有python概念的列表

来自分类Dev

熊猫MultiIndex DataFrames HDFStore:如何有效地获取所有索引

来自分类Dev

有效地解析和提取文本文件中的唯一值

来自分类Dev

如何有效地索引文件?

来自分类Dev

如何有效地重新索引csv数据?

来自分类Dev

如何有效地创建索引

来自分类Dev

SAS如何有效地创建具有相应值的变量

来自分类Dev

如何有效地从numpy数组中提取由其索引给出的元素列表?

来自分类Dev

如何使用python列表有效地重命名数据框索引?

来自分类Dev

如何有效地在python中创建索引列表?

来自分类Dev

如何有效地创建一个带有define()列表的数组?

来自分类Dev

如何有效地搜索列表中的项目?

来自分类Dev

如何有效地搜索列表中的项目?

来自分类Dev

如何从 IReadOnlyCollection 有效地将属性作为列表获取?

来自分类Dev

如何有效地更新表的列值?

来自分类Dev

如何有效地复制列表中的特定值

来自分类Dev

如何有效地从熊猫的列表列中计算每个值的出现次数?

来自分类Dev

neo4j:如何有效地搜索列表中的值?

来自分类Dev

如何有效地从数组中获取特定值?

来自分类Dev

如何基于行的字符串值有效地获取数据

来自分类Dev

如何有效地进行滤波以获取单元格的值

来自分类Dev

如何有效地从记录子集中获取 has_many 值?

Related 相关文章

  1. 1

    如何通过两个属性有效地获取唯一的较早的行?

  2. 2

    如何有效地获取具有NaN值的数据帧的相关矩阵(具有p值)?

  3. 3

    如何有效地获取具有NaN值的数据帧的相关矩阵(具有p值)?

  4. 4

    如何处理“仅对具有唯一值的索引对象有效的索引”

  5. 5

    如何有效地生成一组具有预定义分布的唯一随机数?

  6. 6

    有效地确定大型排序的numpy数组是否只有唯一值

  7. 7

    有效地在双向链接列表中搜索具有指针约束的值?

  8. 8

    如何有效地检查第一个具有python概念的列表

  9. 9

    熊猫MultiIndex DataFrames HDFStore:如何有效地获取所有索引

  10. 10

    有效地解析和提取文本文件中的唯一值

  11. 11

    如何有效地索引文件?

  12. 12

    如何有效地重新索引csv数据?

  13. 13

    如何有效地创建索引

  14. 14

    SAS如何有效地创建具有相应值的变量

  15. 15

    如何有效地从numpy数组中提取由其索引给出的元素列表?

  16. 16

    如何使用python列表有效地重命名数据框索引?

  17. 17

    如何有效地在python中创建索引列表?

  18. 18

    如何有效地创建一个带有define()列表的数组?

  19. 19

    如何有效地搜索列表中的项目?

  20. 20

    如何有效地搜索列表中的项目?

  21. 21

    如何从 IReadOnlyCollection 有效地将属性作为列表获取?

  22. 22

    如何有效地更新表的列值?

  23. 23

    如何有效地复制列表中的特定值

  24. 24

    如何有效地从熊猫的列表列中计算每个值的出现次数?

  25. 25

    neo4j:如何有效地搜索列表中的值?

  26. 26

    如何有效地从数组中获取特定值?

  27. 27

    如何基于行的字符串值有效地获取数据

  28. 28

    如何有效地进行滤波以获取单元格的值

  29. 29

    如何有效地从记录子集中获取 has_many 值?

热门标签

归档