list_1 = [1,2,3,4]
list_2 = [2,4]
list_index = 0
list_3 = [0]*(len(list_1)+len(list_2))
for index in range(6):
if index in list_2:
list_3[index] = -1
else:
list_3[index] = list_1[list_index]
list_index += 1
有没有办法使用numpy数组执行上述操作 上述代码的输出为[1,2,-1,3,-1,4]
答案 0 :(得分:2)
你走了。首先使用numpy.zeros
创建一个空数组(比如arr
)。现在使用list_2
中的项目作为索引将-1分配给arr
,然后找到值不等于-1或等于0的项目,并分配list_1
的项目它。
>>> list_1 = [1,2,3,4]
>>> list_2 = [2,4]
>>> arr = np.zeros(len(list_1)+len(list_2))
>>> arr[list_2] = -1
>>> arr[arr!=-1] = list_1
>>> arr
array([ 1., 2., -1., 3., -1., 4.])