如何使用numpy数组执行以下操作

时间:2015-02-20 11:48:39

标签: python arrays numpy

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]

1 个答案:

答案 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.])