Python使用从索引到另一个索引的值填充数组
我有3个1D列表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 = [
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