本文介绍了从索引位置列表中创建非均匀(随机)间隔的代码吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
假设我在一个数组上有一个职位列表:
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.])
这篇关于从索引位置列表中创建非均匀(随机)间隔的代码吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!