首页 > 解决方案 > 用数组中的值填充数组(Python)

问题描述

我目前有一个 numpy 数组。例如,假设我有:

[1, 2, 4, 5, 3, 6]

我想要一个新数组,其中每个元素按其值的数量重复。所以对于这个例子,我会得到:

[1, 2, 2, 4, 4, 4, 4, 5, 5, 5, 5, 5, 3, 3, 3, 6, 6, 6, 6, 6, 6]

但是,我宁愿不必遍历这个数组,并且想知道 numpy 中是否有一个函数或一些快速过程来执行这个特定过程?谢谢!

标签: pythonarraysnumpynumpy-ndarray

解决方案


您可以itertools与列表理解结合使用。

from itertools import chain

list(chain.from_iterable([item] * item for item in data))

[1, 2, 2, 4, 4, 4, 4, 5, 5, 5, 5, 5, 3, 3, 3, 6, 6, 6, 6, 6, 6]

推荐阅读