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

Python 根据另一个索引数组重复numpy数组元素,python,arrays,numpy,Python,Arrays,Numpy,我有以下占位符数组: placeholder = np.zeros(10) A包含我要进入占位符的值 A = np.array([25, 40, 65,50]) idx具有占位符的索引。请注意,该占位符的形状与 问题: 我想用A的元素填充占位符。A中元素的重复量由idx数组的间隔长度定义 例如,25重复了5次,因为对应的索引范围是[0,5。65重复了两次,因为对应的索引范围是[6,8] 预期产出: np.array([25, 25, 25, 25, 25, 40, 65, 65, 50, 5

我有以下占位符数组:

placeholder = np.zeros(10)
A包含我要进入占位符的值

A = np.array([25, 40, 65,50])
idx具有占位符的索引。请注意,该占位符的形状与

问题:

我想用A的元素填充占位符。A中元素的重复量由idx数组的间隔长度定义

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

预期产出:

np.array([25, 25, 25, 25, 25, 40, 65, 65, 50, 50])
使用np.diff+np.repeat快速简便:

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

如果要使用占位符数组:

placeholder = np.zeros(10)
如果要使用占位符数组:

placeholder = np.zeros(10)

这个解决方案是天外来客!不幸的是,我不得不接受另一个,因为它的可读性。这个解决方案是天外来客!不幸的是,我不得不接受另一个,因为它的可读性。
import numpy as np

placeholder = np.zeros(10)
A = np.array([25, 40, 65,50])
idx = np.array([0, 5, 6, 8])

placeholder[idx[0]] = A[0]
placeholder[idx[1:]] = np.diff(A)    
np.cumsum(placeholder, out=placeholder)