相关疑难解决方法(0)

在没有Python循环的情况下制作一个numpy数组单调

我有一个数组的值,它应该是单调的(比如减少),但是随机区域的值随着索引而增加.

我需要一个数组,其中每个区域都替换为它前面的值,以便对结果数组进行排序.

所以如果给定的数组是:

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])
Run Code Online (Sandbox Code Playgroud)

我想要结果

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])
Run Code Online (Sandbox Code Playgroud)

这是一个图形表示:

例

我知道如何用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]
Run Code Online (Sandbox Code Playgroud)

python arrays numpy vectorization

17
推荐指数
1
解决办法
2655
查看次数

标签 统计

arrays ×1

numpy ×1

python ×1

vectorization ×1