我有一个一维值数组,应该是单调的(假设是递减的),但存在随机区域其值会随索引增加。
我需要一个替换了每个区域值的数组,使得结果数组是有序的。
所以如果给出的数组是:
a = np.array([10.0, 9.5, 8.0, 7.2, 7.8, 8.0, 7.0, 5.0, 3.0, 2.5, 3.0, 2.0])
我希望你能把结果变成这样
b = np.array([10.0, 9.5, 8.0, 7.2, 7.2, 7.2, 7.0, 5.0, 3.0, 2.5, 2.5, 2.0])
这是一个图形化表示:
我知道如何使用Python循环来实现它,但是否有使用NumPy工具的方法呢?
为了清晰起见,以下是Python代码:
b = np.array(a)
for i in range(1, b.size):
if b[i] > b[i-1]:
b[i] = b[i-1]