本文介绍了从索引位置列表中创建非均匀(随机)间隔的代码吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我在一个数组上有一个职位列表:

Suppose I have a array on ones and a list of positions:

arr = np.ones(35)
[3, 5, 8, 12, 14, 17, 19, 25, 27, 33]

在这些不同的点上,我想加一,这样我得到的最终数组就像

At these various points, I want to increase by one so that I have a final array that is something like

array([1,1,1,2,2,3,3,3,4,4,4,4,5,5,6,6,6,7,7,8,8,....])

推荐答案

您可以执行以下操作:

arr = np.ones(35)
idx = [3, 5, 8, 12, 14, 17, 19, 25, 27, 33]
for val in idx:
    arr[val:] = arr[val:] + 1

(对于那些不熟悉Python索引的人,符号[val:]只是从val索引到数组的末尾.)

(For those unfamilar with Python indexing, the notation [val:] simply indexes from val to the end of the array.)

输出为:

array([ 1.,  1.,  1.,  2.,  2.,  3.,  3.,  3.,  4.,  4.,  4.,  4.,  5.,
        5.,  6.,  6.,  6.,  7.,  7.,  8.,  8.,  8.,  8.,  8.,  8.,  9.,
        9., 10., 10., 10., 10., 10., 10., 11., 11.])

这篇关于从索引位置列表中创建非均匀(随机)间隔的代码吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-03 15:07