通过数组索引Python

时间:2016-10-29 13:14:57

标签: python arrays indexing

我有一个数组bound_1 shape(1,5)

bound_1 = [ 0, 5, 9, 12, 14]

数组bound_2 shape(1, 5)

bound_2 = [ 5, 9, 12, 14, 19]

值数组shape(1, 5)

value = [ 1, 2, 3, 4, 5]

使用零shape(1, 19)

初始化的结果数组
result_array= [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

现在我要做的就是将值写入其对应的范围(bound1和bound2之间)到结果数组中,这应该看起来像

result_array= [1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 5, 5]

我认为它完成了:

result_array[ 0 , bound_1 : bound_2 ] = value

但我收到错误:

IndexError: Invalid Slice

我试图在没有for循环的情况下解决这个问题。

2 个答案:

答案 0 :(得分:0)

我想不出一个可爱的“pythonic”方式来回答这个问题。也许其他人会有更短的表述。

但是,以下应该做的工作:

for idx in range(0, len(bound_1)):
  for dst in range(bound_1[idx], bound_2[idx]):
    result_array[dst] = value[idx]

答案 1 :(得分:0)

找到了解决方案!

numpy.repeat ( value, bound_2-bound_1 )

here is the documentation of that function