2014-09-29 79 views
1

鉴于载体a = np.array([1, 2, 3, 4, -1, 5, 6, -1, 7, 8, -1, 9])b = np.array([999, 999, 999]),我怎样才能将载体b插入向量a之前的每个索引a持有价值-1如何在现有矢量的多个点处插入矢量?

为了说明,我想获得以下输出:

array([1, 2, 3, 4, 999, 999, 999, -1, 5, 6, 999, 999, 999, -1, 7, 8, 999, 999, 999, -1, 9]) 

我一直在使用np.insert试过,但我清楚,因为缺少的东西:

In [1]: np.insert(a, np.nonzero(a == -1)[0], b) 
Out[1]: array([ 1, 2, 3, 4, 999, -1, 5, 6, 999, -1, 7, 8, 999, -1, 9]) 

是怎么回事?我怎样才能解决这个问题?

回答

1

您需要重复您提供的索引来np.insert()

In [48]: np.insert(a, np.repeat(np.where(a == -1)[0], b.size), b) 
Out[48]: 
array([ 1, 2, 3, 4, 999, 999, 999, -1, 5, 6, 999, 999, 999, 
     -1, 7, 8, 999, 999, 999, -1, 9]) 
+0

你是一个很好的人,你应该觉得好;) – blz 2014-09-29 17:44:15

+0

@blz:我的荣幸。 :) – NPE 2014-09-29 17:48:43