我有以下占位符数组:
placeholder = np.zeros(10)
A
包含我想要进入占位符的值
A = np.array([25, 40, 65,50])
idx
包含占位符的索引(请注意,其形状与A
相同)
idx = np.array([0, 5, 6, 8])
问题:
我希望placeholder
填充A
的元素。 A
中要重复的元素的数量由idx
数组的间隔长度定义。
例如,25重复5次,因为相应的索引范围是[0,5]。 65重复两次,因为相应的指数范围是[6,8]
预期产出:
np.array([25, 25, 25, 25, 25, 40, 65, 65, 50, 50])
答案 0 :(得分:3)
使用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])
答案 1 :(得分:3)
如果您想使用placeholder
数组:
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)