python - 根据另一个索引数组重复 numpy 数组元素

标签 python arrays numpy

我有以下占位符数组:

placeholder = np.zeros(10)

A 包含我想要进入占位符的值

A = np.array([25, 40, 65,50])

idx 具有占位符的索引(请注意,这与 A 具有相同的形状)

idx = np.array([0, 5, 6, 8])

问题:

我想用 A 的元素填充 placeholderA 中元素的重复次数由 idx 数组的间隔长度定义。

比如25重复5次,因为对应的索引范围是[0, 5)。 65重复了两次,因为对应的索引范围是[6,8)

预期输出:

np.array([25, 25, 25, 25, 25, 40, 65, 65, 50, 50])

最佳答案

使用 np.diff + np.repeat 快速简单:

repeats = np.diff(np.append(idx, len(placeholder)))

A.repeat(repeats)
array([25, 25, 25, 25, 25, 40, 65, 65, 50, 50])

关于python - 根据另一个索引数组重复 numpy 数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48862244/

相关文章:

c++ - 使用数组索引计算位置

python - 在 python 中按定义的间隔按 id/group 移动平均值

python - 如何利用所有核心来加速基于numpy 3D数组的仿真程序?

python - 将 pandas 系列分配给 groupby 操作

python - 从 PeeWee 查询中获取完整结果(用于转换为 JSON)

java - equals/Arrays.deepequals 在相同数组上返回 false

python - 在 numpy 数组中的其他值之间插入值

python - 从字符串中删除前导空格

python - SSL: SSLV3_ALERT_HANDSHAKE_FAILURE sslv3 警报握手失败 (_ssl.c:833)

python - * : 'Nonetype' and 'Float' with array problem [duplicate]的不受支持的操作数类型的Python错误