python - 用数组中的值填充数组(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 中是否有一个函数或一些快速过程来执行这个特定过程?谢谢!
解决方案
您可以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]
推荐阅读
- r - 将函数应用于 r 中的每个组以创建多个数据帧并将它们全部组合到 r
- java - MongoDB 连接可以类似于 Java servlet 中的 SQL 连接吗?
- python - 代码无法正常工作 - 尝试创建一个简单的图表
- python - 如何使用 numpy 创建一个重复值数组
- javascript - 将锚标记附加到部分以及传输 id
- c++ - std::swap 丢失了基于类型的别名分析使用的信息?
- visual-studio - “转到定义”版本号从何而来?
- prettier - 防止 Prettier 中的换行符
- pine-script - Tradingview 策略不准确。需要建议
- amazon-web-services - 如何通过 AWS HTTP API 向 Lambda 发送参数