Python使用从索引到另一个索引的值填充数组

Python使用从索引到另一个索引的值填充数组,python,arrays,Python,Arrays,我有3个1D列表 repetitions= [2, 1, 1, 3, 1, 1, 1, 1, 2, 1] start = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] end = [20, 30, 40, 50, 60, 70, 80, 90, 100, 110] 我想使用重复列表,用从start[I]到end[I]的值1填充二维输出np.array 例如,让我们假设我的输出数组的形状为(150,10),其中填充了零 Output = [

我有3个1D列表

repetitions= [2, 1, 1, 3, 1, 1, 1, 1, 2, 1]
start = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
end = [20, 30, 40, 50, 60, 70, 80, 90, 100, 110]
我想使用重复列表,用从start[I]end[I]的值1填充二维输出np.array

例如,让我们假设我的输出数组的形状为(150,10),其中填充了零

Output = [
         [0,0,0,0,0,0,0,0,0,0] #0
         [0,0,0,0,0,0,0,0,0,0] #1
         [0,0,0,0,0,0,0,0,0,0] #2
         [0,0,0,0,0,0,0,0,0,0] #3
         [0,0,0,0,0,0,0,0,0,0] #4
         [0,0,0,0,0,0,0,0,0,0] #5
         [0,0,0,0,0,0,0,0,0,0] #6
         [0,0,0,0,0,0,0,0,0,0] #7
         [0,0,0,0,0,0,0,0,0,0] #8
         [0,0,0,0,0,0,0,0,0,0] #9
         [0,0,0,0,0,0,0,0,0,0] #10
         [0,0,0,0,0,0,0,0,0,0] #11
         [0,0,0,0,0,0,0,0,0,0] #12
         [0,0,0,0,0,0,0,0,0,0] #13
         [0,0,0,0,0,0,0,0,0,0] #14
         ...
         ]
首先,我必须迭代repetitions列表,以获得迭代开始列表和结束列表的次数,并获得填充输出数组的行和列索引

例如,重复列表的第一列(索引为0的列)等于2,然后我必须迭代开始和结束列表2次,并填充输出数组,首先,从行索引(start[0]==10)到行end[0]==20在列索引索引0(是重复列表中重复值2的索引)处,值为1

然后从开始[1]结束[2],在索引0处也使用值1

第一次迭代的输出数组如下所示:

Output = [
         [0,0,0,0,0,0,0,0,0,0] #0
         [0,0,0,0,0,0,0,0,0,0] #1
         [0,0,0,0,0,0,0,0,0,0] #2
         [0,0,0,0,0,0,0,0,0,0] #3
         [0,0,0,0,0,0,0,0,0,0] #4
         [0,0,0,0,0,0,0,0,0,0] #5
         [0,0,0,0,0,0,0,0,0,0] #6
         [0,0,0,0,0,0,0,0,0,0] #7
         [0,0,0,0,0,0,0,0,0,0] #8
         [0,0,0,0,0,0,0,0,0,0] #9
         [1,0,0,0,0,0,0,0,0,0] #10
         [1,0,0,0,0,0,0,0,0,0] #11
         [1,0,0,0,0,0,0,0,0,0] #12
         [1,0,0,0,0,0,0,0,0,0] #13
         [1,0,0,0,0,0,0,0,0,0] #14
         [1,0,0,0,0,0,0,0,0,0] #15
         [1,0,0,0,0,0,0,0,0,0] #16
         [1,0,0,0,0,0,0,0,0,0] #17
         [1,0,0,0,0,0,0,0,0,0] #18
         [1,0,0,0,0,0,0,0,0,0] #19
         [1,0,0,0,0,0,0,0,0,0] #20
         ...
         ]
Output = [
         ...
         [1,0,0,0,0,0,0,0,0,0] #10
         [0,0,0,0,0,0,0,0,0,0] #11
         [0,0,0,0,0,0,0,0,0,0] #12
         [0,0,0,0,0,0,0,0,0,0] #13
         [0,0,0,0,0,0,0,0,0,0] #14
         [0,0,0,0,0,0,0,0,0,0] #15
         [0,0,0,0,0,0,0,0,0,0] #16
         [0,0,0,0,0,0,0,0,0,0] #17
         [0,0,0,0,0,0,0,0,0,0] #18
         [0,0,0,0,0,0,0,0,0,0] #19
         [0,1,0,0,0,0,0,0,0,0] #20
         [0,1,0,0,0,0,0,0,0,0] #21
         [0,1,0,0,0,0,0,0,0,0] #22
         [0,1,0,0,0,0,0,0,0,0] #23
         [0,1,0,0,0,0,0,0,0,0] #24
         [0,1,0,0,0,0,0,0,0,0] #25
         [0,1,0,0,0,0,0,0,0,0] #26
         [0,1,0,0,0,0,0,0,0,0] #27
         [0,1,0,0,0,0,0,0,0,0] #28
         [0,1,0,0,0,0,0,0,0,0] #29
         [0,1,0,0,0,0,0,0,0,0] #30
         ...
         ]
然后重复列表的第二列(索引为1)等于1,然后我必须迭代开始和结束列表1时间并填充输出数组,从行索引(start[1]==20)到行end[1]==30在列索引索引1(是重复列表中重复值1的索引)处,值为1。等等

第二次迭代的输出数组如下所示:

Output = [
         [0,0,0,0,0,0,0,0,0,0] #0
         [0,0,0,0,0,0,0,0,0,0] #1
         [0,0,0,0,0,0,0,0,0,0] #2
         [0,0,0,0,0,0,0,0,0,0] #3
         [0,0,0,0,0,0,0,0,0,0] #4
         [0,0,0,0,0,0,0,0,0,0] #5
         [0,0,0,0,0,0,0,0,0,0] #6
         [0,0,0,0,0,0,0,0,0,0] #7
         [0,0,0,0,0,0,0,0,0,0] #8
         [0,0,0,0,0,0,0,0,0,0] #9
         [1,0,0,0,0,0,0,0,0,0] #10
         [1,0,0,0,0,0,0,0,0,0] #11
         [1,0,0,0,0,0,0,0,0,0] #12
         [1,0,0,0,0,0,0,0,0,0] #13
         [1,0,0,0,0,0,0,0,0,0] #14
         [1,0,0,0,0,0,0,0,0,0] #15
         [1,0,0,0,0,0,0,0,0,0] #16
         [1,0,0,0,0,0,0,0,0,0] #17
         [1,0,0,0,0,0,0,0,0,0] #18
         [1,0,0,0,0,0,0,0,0,0] #19
         [1,0,0,0,0,0,0,0,0,0] #20
         ...
         ]
Output = [
         ...
         [1,0,0,0,0,0,0,0,0,0] #10
         [0,0,0,0,0,0,0,0,0,0] #11
         [0,0,0,0,0,0,0,0,0,0] #12
         [0,0,0,0,0,0,0,0,0,0] #13
         [0,0,0,0,0,0,0,0,0,0] #14
         [0,0,0,0,0,0,0,0,0,0] #15
         [0,0,0,0,0,0,0,0,0,0] #16
         [0,0,0,0,0,0,0,0,0,0] #17
         [0,0,0,0,0,0,0,0,0,0] #18
         [0,0,0,0,0,0,0,0,0,0] #19
         [0,1,0,0,0,0,0,0,0,0] #20
         [0,1,0,0,0,0,0,0,0,0] #21
         [0,1,0,0,0,0,0,0,0,0] #22
         [0,1,0,0,0,0,0,0,0,0] #23
         [0,1,0,0,0,0,0,0,0,0] #24
         [0,1,0,0,0,0,0,0,0,0] #25
         [0,1,0,0,0,0,0,0,0,0] #26
         [0,1,0,0,0,0,0,0,0,0] #27
         [0,1,0,0,0,0,0,0,0,0] #28
         [0,1,0,0,0,0,0,0,0,0] #29
         [0,1,0,0,0,0,0,0,0,0] #30
         ...
         ]
以下是我尝试过的,但我感到困惑:

Output=np.zeros((150, 10))

for i in range(len(start)):
    for j in range(10):
        ms = repetions[i][j]
        for p in range(ms):
            Output[start[i]:end[i], p]=1